Нет идеи, как удалить размеры из коллекции " задом на перед" : т.е начать с последнего и закончить первым?А кто тебе мешает записать цикл в обратном направлении? Если мне не изменяет память, то в VBA нужно написать как-то так:
А кто тебе мешает записать цикл в обратном направлении?Отсутствие должных знаний в этой области! :) Поэтому решил по-простому. Спасибо, Александр, за совет. Сейчас еще поковыряюсь.
For i = 1 To oSheet.DrawingDimensions.GeneralDimensions.Count
oSheet.DrawingDimensions.GeneralDimensions(i).Delete
Next
Ну это вы, батенька, конечно повеселили.Век живи - век учись! Я рад, что поднял вам настроение! :) Никогда до этого не приходилось коллекцию обнулять, потому и не задумывался о "поведении индексов"! Пару раз споткнулся - но задачу таки решил!:)
коллекцию обнулятьЕще пару слов, при удалении размеров (и не только размеров) каждое действие записывается в транзакции (undo/redo), на это тратятся ресурсы производительности. Как минимум, лучше создать свою транзакцию, что бы инвентор определял удаление как одно действие, когда пользователь жмет на кнопку "отката". Но при большом количестве удалений инвентор может даже подвисать, потому как инвентор не отключает создание своих транзакций при каждом акте удаления объекта. Можно заставить инвентор использовать глобальную транзакцицию: это запретит инвентору создавать свои промежуточные транзакции и процесс удаления ускорится почти на порядок.
Не могу разобраться, как подставить коллекцию размеров.
Потом через соответствующий метод добавить члены в коллекциюПравильно ли я понимаю, что запихнуть всю коллекцию размеров в пользовательскую разом нельзя, только перебором почленно?
что запихнуть всю коллекцию размеров в пользовательскую разом нельзя, только перебором почленно?Да, только по одному. ObjectCollection очень шустрый объект.
Да, только по одному. ObjectCollection очень шустрый объект.Ок, спасибо еще раз.