在Excel VBA中选择图纸范围

在Excel VBA中选择图纸范围,vba,excel,Vba,Excel,我试图在Excel宏中选择一系列工作表,以便打印它们 我想打印一个范围,即Sheet2 Sheetx,其中x是一个变量 我试着录制一个宏来做我想做的事情,但它使用工作表名称而不是工作表引用,当然也不支持变量 在本例中,我选择了三张图纸,因此x=3: Sheets(Array("Data", "Data (2)", "Data (3)")).Select ActiveWindow.SelectedSheets.PrintOut preview:=True 我本以为这很简单,但似乎无法理解 提前感

我试图在Excel宏中选择一系列工作表,以便打印它们

我想打印一个范围,即Sheet2 Sheetx,其中x是一个变量

我试着录制一个宏来做我想做的事情,但它使用工作表名称而不是工作表引用,当然也不支持变量

在本例中,我选择了三张图纸,因此x=3:

Sheets(Array("Data", "Data (2)", "Data (3)")).Select
ActiveWindow.SelectedSheets.PrintOut preview:=True
我本以为这很简单,但似乎无法理解


提前感谢。

。Name
是获取 工作表的名称如下:

WorkSheets(Array(Worksheets(1).Name, Worksheets(2).Name, Worksheets(3).Name)).Select
Public Sub SelectN()

    Dim N           As Long: N = 2
    Dim cnt         As Long
    Dim arrOfWs     As Variant

    ReDim arrOfWs(N - 1)
    For cnt = 1 To N
        arrOfWs(cnt - 1) = Worksheets(cnt).Name
    Next cnt
    Worksheets(arrOfWs).Select

End Sub
如果您想用
N
作为变量,可以这样做:

WorkSheets(Array(Worksheets(1).Name, Worksheets(2).Name, Worksheets(3).Name)).Select
Public Sub SelectN()

    Dim N           As Long: N = 2
    Dim cnt         As Long
    Dim arrOfWs     As Variant

    ReDim arrOfWs(N - 1)
    For cnt = 1 To N
        arrOfWs(cnt - 1) = Worksheets(cnt).Name
    Next cnt
    Worksheets(arrOfWs).Select

End Sub

您的代码似乎适合我,但我会将其缩短:

Sheets(Array("Data", "Data (2)", "Data (3)")).Printout Preview: = -1

检查工作表的名称拼写

优秀的;正是我想要的。谢谢