У меня есть этот код, который заполняет массив именами листов, при условии:
Dim lng_Counter As Long
Dim arr_wks() As Variant
lng_Counter = 1
For Each wks In ThisWorkbook.Worksheets
If Left(wks.Name, 2) = "Hi" Then
ReDim Preserve arr_wks(lng_Counter)
arr_wks(lng_Counter) = wks.Name
lng_Counter = lng_Counter +1
End if
Next wks
Затем я хотел бы скопировать эти листы в новую книгу, поэтому я попробовал что-то вроде этого:
Sheets(arr_wks()).Copy
Что не работает.Единственный способ заставить его работать - выписать:
Sheets(Array(arr_wks(1),arr_Wks(2),...)).Copy
Что бесполезно, так как размер массива будет меняться в зависимости от количества листов, которые удовлетворяют условию в данный момент времени..
Как передать массив в аргумент типа Sheets (arr) .Copy?