簡體   English   中英

選擇多個Excel表格以導出為PDF

[英]Select Multiple Excel Sheets to Export to PDF

我編寫了一些代碼來構建字符串中的工作表列表,具體取決於用戶是否選中了復選框以在PDF報表中包含工作表。 見下文:

If CheckBox1.Value = True Then
        PDFsheets = "Sheet11"    
End If

If CheckBox2.Value = True Then
    If PDFsheets = "" Then
        PDFsheets = "Sheet13"
    Else
        PDFsheets = PDFsheets & ",Sheet13"
    End If
End If

If CheckBox3.Value = True Then
    If PDFsheets = "" Then
        PDFsheets = "Sheet2"
    Else
        PDFsheets = PDFsheets & ",Sheet2"
    End If
End If

例如,當選中所有3個復選框時, MsgBox PDFsheets顯示結果Sheet11, Sheet13, Sheet2

現在,當我嘗試進行多頁選擇時,我得到運行時錯誤9 - 下標超出范圍。 我嘗試過的不同之處包括:

ThisWorkBook.Sheets(PDFsheets).Select


ThisWorkBook.Sheets(Array(PDFsheets)).Select


xPDF() = Split(PDFsheets, ",")
ThisWorkBook.Sheets(xPDF).Select

xPDF() = Split(PDFsheets, ",")
ThisWorkBook.Sheets(Array(xPDF)).Select

xPDF() = Split(PDFsheets, ",")

For i = 0 to Application.CountA(xPDF) - 1
    Sheets(xPDF(i)).Select
next i

另外,為了簡潔起見,我使用ActiveWorkbook而不是ThisWorkBook嘗試了所有上述示例。 加號,我嘗試重寫我的字符串構建部分以引用工作表名稱而不是上面所有示例的數字。 因此,不是Sheet11, Sheet13, Sheet2 ,結果是"Sheet11", "Sheet13, "Sheet2" ,在工作表周圍有雙引號。

我在這里和其他地方看到其他問題和代碼示例,它們顯示了相同的目標,我正在使用選擇行,就像它們已經使用它一樣,我得到了下標超出范圍的錯誤。 (我也驗證了一切拼寫正確)

附加注意如果我嘗試直接在其中鍵入字符串值工作 - ThisWorkBook.Sheets("Sheet11, Sheet13, Sheet2").Select - 但是,這不允許我保持變量。

您正在構建一個逗號分隔的字符串,您必須將其轉換為數組。 非常接近:

Sub BuildAString()
    Dim PDFsheets As String
    Dim s As Worksheet
    PDFsheets = "Sheet1,Sheet2,Sheet3"
    ary = Split(PDFsheets, ",")

    Sheets(ary).Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "C:\TestFolder\Book1.pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            True
End Sub

請注意,這會為所有三張紙制作1個 pdf文件。 如果你想要3個單獨的文件,你可以使用循環。
請注意, PDFsheets表格中沒有空格,因為我的工作表名稱沒有空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM