2017-09-26 171 views
1

我正在尋找一些解決PDF問題的幫助。我有一張表格,其中包含一些可在2頁上打印的信息。此表中顯示的信息由下拉選項控制,以選擇幾百個選項中的一個。我有一個PDF打印功能,可以正常顯示所顯示信息的單個視圖,因此我使用下拉菜單選擇1個選項,然後單擊保存到PDF按鈕,這一切都很好。Excel VBA導出並附加到PDF

我需要添加第二個函數,它將遍歷下拉框中可用的所有選項,並將所有這些添加到單個PDF中進行保存。我可以處理循環中的所有標準代碼,但是如何在循環內部生成PDF文件。我知道如何構建一張紙張以導出爲單個PDF,但這種「循環」功能是我努力尋找答案的一種方式。

任何人都可以幫忙嗎?如果您需要更多信息,請直接詢問。

謝謝

+0

-1這將是高度依賴於應用。也就是說,你需要發佈一些代碼來明確你現在正在做什麼,以及爲什麼它不起作用。一般來說,Excel會將任何你想要的東西導出到PDF中。如果你想導出多個「視圖」等,你將需要在一個地方得到所有的人,並做一個PDF導出。這通常涉及創建幫助表/工作簿。或者,您可以使用Excel創建多個PDF,並使用其他工具將其合併。使用Excel無法「附加到PDF」。 –

+0

會嘗試使用幫助表/工作簿,但感覺這可能是密集的超過400條記錄。我找到了合併PDF的例子,所以我也會嘗試創建單獨的PDF並使用這種方法合併它們。我認爲第二種選擇可能會快得多,但根本不確定。有沒有什麼聰明的方法讓助手牀單/工作簿選項快速優化呢,拜倫?不知道什麼協議在這裏。我是否會在我的代碼發佈後發佈我的代碼,因爲我沒有任何代碼可以發佈。無論如何,我會建議我選擇什麼選項以及爲什麼。我正在使用Excel 2013,Adobe 10標準 – nelly2000

+0

Re:400張表格,您可能會對Excel能夠處理的內容感到驚訝。我肯定會把它們放在一個新的/空白的工作手冊中,這樣你就不會污染你的源工作簿。我在一些相當密集的事情上使用了這種技術,並且它傾向於工作。可能值得進行測試,看看它是否會運行這麼多,然後如果速度太慢或無法運行,則優化它。更可能的是,它會運行得很好,你就會完成。 –

回答

0

在解決方案中,假設我們有一個名爲Table2的表。 我們還有一個幫助表(用於存儲過濾的表),它是Hiden並命名爲:Help。

Option Explicit 

Sub print_to_pdf() 
    Dim sh As Long 
    Dim rg As Range 
    Dim Rng As Range 
    Dim rw As Range 

    Application.ScreenUpdating = False 

    For Each rw In Range("Table2[#All]").Rows 

     If rw.EntireRow.Hidden = False Then 
      If Rng Is Nothing Then Set Rng = rw 
      Set Rng = Union(rw, Rng) 
     End If 

    Next 

    Rng.Copy 

    With Sheets("help") 
     .Visible = True 
     sh = .Cells(Rows.Count, "A").End(xlUp).Row + 2 
     Set rg = Range("a3" & ":" & "a" & sh - 2) 

     .Activate 
     .Cells(sh, "A").Select 
     ActiveSheet.Paste 

     ActiveSheet.PageSetup.PrintArea = rg 

     ActiveSheet.ExportAsFixedFormat _ 
     Type:=xlTypePDF, _ 
     Filename:=ThisWorkbook.Path & "\rep.pdf", _ 
     Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, _ 
     IgnorePrintAreas:=False, _ 
     OpenAfterPublish:=False 

     .Visible = False 
    End With 

    Application.ScreenUpdating = True 

    MsgBox "Your PDF Has been Created with Success!!", vbInformation 
End Sub 

您可以附加在幫助表,然後導出PDF數據。

編號:https://stackoverflow.com/questions/

+1

儘管在本例中它僅適用於某些情況,但您已逐字複製鏈接的答案。由於他希望導出的範圍的基礎內容正在改變,因此發佈的代碼將不會基於OP的描述工作。也就是說,通過Union建立一個Range並且做一個複製/粘貼在這裏不會有幫助。 –

+0

這很複雜,是一種將內容附加到pdf的方法。 – mgae2m