首页 文章

在Excel VBA中选择工作表范围

提问于
浏览
2

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

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

我已经尝试录制宏来做我想要的,但它使用工作表名称而不是工作表引用,当然不支持变量 .

在这个例子中,我选择了三张纸,所以x = 3:

Sheets(Array("Data", "Data (2)", "Data (3)")).Select
ActiveWindow.SelectedSheets.PrintOut preview:=True

我原以为这会很简单,但似乎无法弄明白 .

提前致谢 .

2 回答

  • 1

    .Name 是您需要获取工作表名称的属性,如下所示:

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

    如果你想用 N 作为变量来做它,请尝试这样:

    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
    
  • 0

    您的代码似乎对我有用,但我会缩短它:

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

    检查表格的名称拼写 .

相关问题