在给定条件的情况下,我有这个代码用工作表名称填充数组:
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类型参数?
最终出现错误,其中第一个元素(索引为零)为空。
你可以解决这个问题
lng_Counter = 0
, 要么
ReDim Preserve arr_wks(1 to lng_Counter)
, 要么
Option Base 1
在上面。