Приветсвую! Вопрос: Есть VBA код. К примеру, такой:
Код
Sub writeA()
cells(1,1) = "A"
End Sub
Теперь, данный код, мне надо применить к определённым листам в книге, к примеру листы 1,3,7,8. Как это можно написать в VBA. гугл не помог. Видимо не правильно даю запрос.
Можно циклом пробежаться по нужным именам листов и на каждом совершить это действие:
Код
Sub writeA()
Dim arrA (1 to 4) as string
Dim intI as integer
arrA=array(1,3,7,8)
For intI = Lbound(arrA) to Ubound(arrA)
Worksheets(arrA(intI)).cells(1,1) = "A"
Next intI
End Sub
Всё почти закончил. Но остаётся один момент. Заключается в следующем:
Киге есть набор листов. Из него, я выборочно выделяю те листы, на которых, мне надо прогнать свой макрос.
К примеру, как на рисунке. Теперь, никак не могу найти, как можно "собрать" индексы выделенных страниц в массив? Точнее, как в массив внести то я знаю, но вот как найти индексы всех выделенных страниц - вот это вопрос.
Public Sub DoWithSelected()
Dim pSheet As Object
'или
'For Each pSheet In ActiveWindow.SelectedSheets
'или
For Each pSheet In ActiveWorkbook.Windows(1).SelectedSheets
If TypeOf pSheet Is Worksheet Then
'что-нибудь делаем
pSheet.Cells(1, 1) = "A"
End If
Next
End Sub