【问题标题】:VBscript to save excel sheet as pdfVBscript将Excel工作表另存为pdf
【发布时间】:2017-09-22 14:42:15
【问题描述】:

我正在处理HTML5 项目。 在这个项目中,我想通过单击“制作 PDF”按钮来创建 Excel 工作表的 PDF。但是我下面的代码不起作用。 有什么方法可以在不打开 Excel 文件的情况下从 HTML 创建 Excel 工作表的 PDF?

<html><head>
<script language="vbscript" type="text/vbscript">
Sub SaveExcelAsPDF ()
    'Save Excel file as a PDF

    'Initialise
    Dim objExcel, objWorkbook
    Set objExcel = CreateObject("Excel.Application")

    'Open the file
    Set objWorkbook = objExcel.Workbooks.Open ("file:\\\D:\\Book1.xlsx")
    objExcel.Visible = True  
    ObjWorkbook.Windows (1).Visible = True  
    Set XlSheet =objWorkbook.Sheets (3)  
    XlSheet.Activate  

    'Save the PDF
    objWorkbook.ExportAsFixedFormat EXCEL_PDF, PathOfPDF(p_strFilePath), EXCEL_QualityStandard, TRUE, FALSE, , , FALSE


    'Close the file and exit the application
    objWorkbook.Close FALSE
    objExcel.Quit
End Sub
</script></head>
<body>
  <center>
    <br>
    <tr>
      <td>
        <input type="submit" onclick="SaveExcelAsPDF()" value="Make PDF" />
        <br> </td>
    </tr>
  </center>
</form></body></html>

【问题讨论】:

  • Matt Perry,我知道很多 exceltopdf VBScript 可以在 excel 中使用,但是当我在 HTML 中使用这些脚本时,就没有希望了。
  • 您的脚本在 HTA 中对我来说效果很好。您是否收到任何错误?确保PathOfPDF 返回正确的值并且excel文件存在...
  • Yaaa,我收到错误 - 类型不匹配“PathOfPDF”。我不知道如何定义“PathOfPDF”的正确值
  • 你能提供PathOfPDF的代码吗? p_strFilePath 定义了吗?实际上,您可以将文件的路径存储在变量中,然后用 .pdf 替换文件扩展名来代替看似不存在的 PathOfPDF 函数调用。

标签: vba excel pdf vbscript


【解决方案1】:

根据 cmets(...以及提供的代码...),您似乎没有定义将文件名转换为 .pdf 的函数 PathOfPDF(ByVal p_strFilePath)-

话虽如此...在您处理文件路径之前创建一些变量,如下所示:

Sub SaveExcelAsPDF

    Dim objExcel, objWorkbook
    Set objExcel = CreateObject("Excel.Application")

    excelFilePath = "C:\File.xlsx"
    pdfFilePath = Replace(excelFilePath,".xlsx",".pdf")

    Set objWorkbook = objExcel.Workbooks.Open(excelFilePath)
    objWorkbook.ExportAsFixedFormat EXCEL_PDF, pdfFilePath, EXCEL_QualityStandard, TRUE, FALSE, , , FALSE

    objWorkbook.Close FALSE
    objExcel.Quit

End Sub

附:您不需要显示 Excel 窗口即可发布工作...不知道为什么您有代码来显示 Excel 文件/窗口。

【讨论】:

  • @iTech - 如果您希望我提供帮助,请提供更多详细信息。
  • 为 vbscript 定义的常量在哪里?如EXCEL_PDF。我没想到它会起作用,但它确实起作用了。
  • @MrVimes - OP 的 EXCEL_PDF 变量等价于 vbEmpty,其计算结果为 FALSE,与 xlTypePDF 常量的值相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多