Мне любопытно узнать, существует ли способ применить один и тот же метод к нескольким объектам. Другими словами, я ищу что-то, что является, в некотором роде, обратным выражением «С».Применение того же метода для нескольких объектов
Я знаю, что с помощью «С» заявлением, я могу применить несколько методов для одного объекта:
With ITEM_RNG
.ClearContents
.ClearFormats
.ClearOutline
End With
Однако, у меня есть несколько объектов диапазона, к которому я хотел бы применить один метод:
ITEM_RNG.ClearContents
VALUE_RNG.ClearContents
SUM_RNG.ClearContents
Я попытался создать массив объектов в цикле с, но он кажется более запутанным, чем приведенный выше синтаксис. Есть ли способ сделать это без явного добавления .ClearContents для каждого объекта отдельно?
Теперь, используя то, что я узнал о функции Union, я попытался использовать следующее, но безуспешно.
Sub ClearBox(SeriesBox As MSForms.ListBox)
SeriesBox.Clear
End Sub
Sub SeriesBoxesClearall()
ClearBox Application.Union(SERIES1_BOX, SERIES2_BOX, SERIES3_BOX)
End Sub
Где СЕРИЯ [1-3] _BOX - объекты MSForms.ListBox. Есть ли способ сделать эту работу, или Союз не применяется здесь?
спасибо за это. Интересно также, есть ли простой способ запускать одну и ту же функцию для каждого объекта в объединении, но меняя его вход на основе конкретного объекта. Я предполагаю, что это нужно будет сделать, перейдя через массив, это правильно? – teepee
Да, в таком случае вам лучше использовать массив и петлю –
Кажется, что даже с функцией, которая принимает только диапазон в качестве своего ввода и предназначена для очистки содержимого, не будет принимать союз в качестве аргумента. Почему союз не может быть принят? – teepee