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

シート位置の配列をフィードする場合、つまり、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}を含む2D配列を生成します
  3. Application.Transposeこれを、によって処理されていた1D配列に変換します。Sheets(1D Array).Select
于 2012-11-07T02:00:38.660 に答える