1

我正在用建立一个报告。

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

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

是否可以按照以下方式做一些事情?

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

2 回答 2

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
于 2012-11-07T00:41:43.490 回答
1

如果您输入一组工作表位置,您可以在一行中完成,即

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. Application.Transpose将此转换为已处理的一维数组Sheets(1D Array).Select
于 2012-11-07T02:00:38.660 回答