【问题标题】:VBS Excel to PDFVBS Excel转PDF
【发布时间】:2018-10-21 01:50:45
【问题描述】:

我有一张用于制作发票的 Excel 表格。现在,我想将其导出为 PDF 并在 Outlook 上发送。我设法创建了一个有效的代码。我不确定的唯一部分是 Excel 表的某些部分我不想保存到 PDF 中。我想知道是否有人知道这样做的方法?我想这与更改我附加的代码部分有关,但我不确定是什么。

谢谢

Create the PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFile, 
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=OpenPDFAfterCreating

【问题讨论】:

    标签: excel pdf vbscript


    【解决方案1】:

    代码就在那里。我假设您有要导出的特定范围?如果是,则更改代码:

    ActiveSheet.range("A1:B10").ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas :=False, OpenAfterPublish:=OpenPDFAfterCreating
    

    对于单个 pdf 的多个范围:

    ActiveSheet.range("A1:B10, A20:B30, A40:B60").ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas :=False, OpenAfterPublish:=OpenPDFAfterCreating
    

    对于单个 pdf 的多个范围,而 pdf 中没有中断:

    Sheets("Sheets2").UsedRange.ClearContents
    Set myRange = Application.Union(Range("A1:B10"), Range("A20:B30"))
    myRange.Copy Worksheets("Sheet2").Range("A1")
    Sheets("Sheet2").UsedRange.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, =OpenPDFAfterCreating
    

    相应地更改范围

    【讨论】:

    • 对,但是我要删除的部分在工作表的中间,所以有什么方法可以跳过它们吗?我只是创建多个范围吗?
    • 是的,你可以,我将上面的代码更改为(如果正确)就可以了。
    • 谢谢!我刚试过,问题是每个范围都有一个新的pdf页面保存,而不是在一起。有什么想法吗?
    • 试试这个,如果它有效,我会把它添加到上面的代码中。现在无法检查它是否真的有效。设置 myRange = Application.Union(Range("A1:B10"), Range("A20:B30"))。然后当然使用 myRange.Exportas .....
    • 不,似乎没有什么不同。只是为了确定当我调暗它时,我将它存储为范围,对吗?
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2021-04-16
    相关资源
    最近更新 更多