【发布时间】:2019-06-02 22:53:19
【问题描述】:
我想创建一个工作表类型的数组,而不是变量,然后使用 Array 函数填充数组,最后将数组传递给 worksheet.copy 函数以在数组变量中创建一个新的工作表工作簿。
以下代码有效,但没有一个数组属于工作表类型,其中两个示例数组填充了工作表名称。
Dim wbkThis As Workbook
Dim wstX As Worksheet
Dim wstY As Worksheet
Dim wstZ As Worksheet
Dim arrWSA As Variant
Dim arrWSB() As Variant
Dim arrWSC(1 To 3) As Variant
Cancel = True
Set wbkThis = ThisWorkbook
Set wstX = wbkThis.Worksheets("SheetX")
Set wstY = wbkThis.Worksheets("SheetY")
Set wstZ = wbkThis.Worksheets("SheetZ")
ReDim arrWSA(1 To 3) As Variant
ReDim arrWSB(1 To 3) As Variant
arrWSA = Array(wstX, wstY, wstZ)
arrWSB = Array(wstX.Name, wstY.Name, wstZ.Name)
arrWSC(1) = wstX.Name
arrWSC(2) = wstY.Name
arrWSC(3) = wstZ.Name
arrWSA(1).Copy
Worksheets(arrWSB()).Copy
Worksheets(arrWSC()).Copy
【问题讨论】:
-
Worksheets已经是工作表的集合,为什么不使用呢?