【问题标题】:Select range of sheets in Excel VBA在 Excel VBA 中选择工作表范围
【发布时间】:2018-02-06 09:38:03
【问题描述】:

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

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

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

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

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

我以为这很简单,但似乎无法弄清楚。

提前致谢。

【问题讨论】:

    标签: vba excel


    【解决方案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
    

    【讨论】:

    • 优秀;正是我所追求的。谢谢!
    【解决方案2】:

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

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

    检查工作表名称的拼写。

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多