试图循环遍历我的工作簿中工作表子集的数组

时间:2014-08-20 14:48:16

标签: arrays excel vba excel-vba

我一直试图创建一个数组或某种类型的对象,我可以使用它来遍历工作簿中的工作表子集。创建Excel可以循环到的工作表列表的最佳方法是什么?在我的脑海中,我在想,好吧,我将创建一个数组,并将其设置为我需要的工作簿的名称。但是,当我尝试这样做时,Excel抱怨没有对象。数组不是Excel中的对象吗?

另外,我应该如何声明一个工作表列表?变异?字符串?

有人可以给我一些想法吗?

以下是我的代码。现在,请忽略我使用三种不同粘贴类型的事实。那是因为我无法让Excel准确地粘贴我需要的内容。我稍后会改进它。

Sub CopyMacro3() 

    Dim CurrentSheet As Worksheet

    Dim vSheets As Variant

    Set pasteCell = Range("A2") 

    vSheets = Array("CAS-J30F-70LTV", "CAS-J30F-80LTV")

    For Each CurrentSheet In vSheets
        CurrentSheet.Activate
        Range("A1:T80").Copy
        Worksheets("print").Activate
        pasteCell.Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False

        CurrentSheet.Activate
        Range("A1:T80").Copy
        Worksheets("print").Activate
        pasteCell.Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False

        CurrentSheet.Activate
        Range("A1:T80").Copy
        Worksheets("print").Activate
        pasteCell.Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False

        Set pasteCell = pasteCell.Offset(0, 20)

    Next

End Sub

1 个答案:

答案 0 :(得分:2)

你真的不需要变量 - 你可以使用:

for each currentSheet in Sheets(Array("CAS-J30F-70LTV", "CAS-J30F-80LTV"))