簡體   English   中英

將多個選定的工作表另存為單個PDF

[英]Saving multiple selected worksheets as a single PDF

我正在嘗試將多個選定的工作表保存到一個PDF中。

relativePath = wb.Path & "\" & sheetName & dateToday

wb.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

***This is the code in question***.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=relativePath, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

我嘗試了兩種方法來修改“這是有問題的代碼”

  1. 我使用了“選擇”
    • 結果:一個空白文檔被保存為PDF,其中沒有任何內容
  2. 我用過'ActveSheet'
    • 結果:文檔僅以第一張紙保存為PDF
  3. 我用過“ wb”(這是我當前的工作簿,只是為了測試它是否有效)
    • 結果:按預期,將文檔另存為PDF文件,其中包含所有工作表,這主要是為了測試PDF功能是否正常工作

為了明確起見,我想要的結果是將sheet1,sheet2和sheet3保存到同一PDF中(我的工作簿中還有很多其他工作表,並且在工作時我將用數組替換靜態編碼的工作表名稱)

我已經從stackoverflow的答案中得到了解決方案1和2,但是在我為其他人工作時它們都不對我有用。

任何人都可以對解決方案有所了解,或者至少可以確定為什么這兩件事正在發生嗎?

@drcoding

我已經完成了您上面提交的代碼。 似乎代替了線

wb.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

您可以使用;

Worksheets("Sheet1").Select (False)
Worksheets("Sheet2").Select (False)
Worksheets("Sheet3").Select (False)

Sheet1,2,3可以替換為您稍后決定賦予工作表的名稱。 另請注意,請使用(false),以便在選擇工作表2后不會取消選擇工作表1。

我已經在下面發布了類似的代碼,您也可以使用它。 它在工作表“文件索引”中的多個工作表名稱之間循環,並且能夠轉換在該工作表的第一列中選​​擇為“ Y”的所有工作表。 它也使用類似的文件名,就像您在relativePath = wb.Path&“ \\”&sheetName&dateToday中選擇的一樣。 如果您願意,請嘗試一下;

鏈接: http//profit21.blogspot.in/2015/05/template-for-entity-financial-reporting.html

鏈接到文件: https : //www.dropbox.com/s/hi4wfxqz9ixiuby/Profit21.blogspot.in%20Limited%20-%20FY%202014-15%20-%20Accounts%20%26%20Reports%20%282015% 201_54%29.xltm?dl = 0

代碼如下:

Sub TEFAR_Convert_to_PDF()

Dim Count As Integer
Dim SheetsToPDF As Integer

    Application.ScreenUpdating = False
    Sheets("File Index").Select
    Cells(7, 9).Select

For Count = 7 To 207

    'If Worksheets("File Index").Cells(Count, 9) = "" Then GoTo outofi:
        If Worksheets("File Index").Cells(Count, 9) = "Y" Then    '1
            sheetnam = Worksheets("File Index").Cells(Count, 7)
            If IsError(sheetnam) = True Then sheetnam = ""
            If sheetnam <> "" Then                              '2
                Worksheets(sheetnam).Select (False)
            End If                                              '2
        End If                                                  '1

Next Count

outofi:



PDF_filename = (Application.ActiveWorkbook.Path & "\" & Worksheets("Entity Master Data").Cells(3, 3) & " - " & Worksheets("Entity Master Data").Cells(13, 3) & " - " & "PDF Copy of Annual Report.pdf")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDF_filename, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MsgBox ("File has been saved as PDF in " & PDF_filename & " .")

Sheets("File Index").Select
Application.ScreenUpdating = True


End Sub

干杯! 電子工程

暫無
暫無

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

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