从“此工作表”中选择到Excel VBA中的结尾

时间:2012-11-07 00:13:24

标签: excel vba excel-vba

我正在制作报告。

  • 完成步骤是选择大部分纸张(“封面”页面右侧的所有纸张,包括封面本身)并将其打印为PDF。
  • 表格列表可能会有所不同。

我目前正在手动执行此操作,但如果您知道正确的命令,似乎可以自动执行此操作。

是否可以在以下行中执行某些操作?

Sheets(Array(Sheets("Cover")..Sheets(Worksheets.Count())).Select
ActiveSheet.ExportAsFixedFormat

2 个答案:

答案 0 :(得分:4)

我不认为这有一个单行。

Sub Tester()

    Dim i As Long, fnd As Boolean

    For i = 1 To ActiveWorkbook.Sheets.Count
        With ActiveWorkbook.Sheets(i)
            If .Name = "Cover" Then
                fnd = True
                .Select
            Else
                If fnd Then .Select False
            End If
        End With
    Next i

End Sub

答案 1 :(得分:1)

如果你输入一系列的工作表位置,你可以在一行中完成,ie.e

Sheets(Application.Transpose(Application.Evaluate("=ROW(" & Sheets("Cover").Index & ":" & Sheets(Sheets.Count).Index & ")"))).Select

如何运作

  1. 如果Cover是纸张位置12,那么总共有20张纸 ("=ROW(" & Sheets("Cover").Index & ":" & Sheets(Sheets.Count).Index & ")")))等同于 "=ROW("12:20")
  2. Application.Evaluate生成一个包含{12,13,14 ... 20}
  3. 的二维数组
  4. Application.Transpose将此转换为由Sheets(1D Array).Select
  5. 处理的1D数组