我正试图输出我的word文档的每一页到单独的pdf文件。为此,我有这个模块的代码。
Sub SaveAsSeparatePDFs()
Dim I As Long
Dim xStr As String
Dim xPathStr As Variant
Dim xDictoryStr As String
Dim xFileDlg As FileDialog
Dim xStartPage, xEndPage As Long
Dim xStartPageStr, xEndPageStr As String
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xPathStr = xFileDlg.SelectedItems(1)
xStartPageStr = InputBox("Begin saving PDFs starting with page __? " & vbNewLine & "(ex: 1)")
xEndPageStr = InputBox("Save PDFs until page __?" & vbNewLine & "(ex: 7)")
If Not (IsNumeric(xStartPageStr) And IsNumeric(xEndPageStr)) Then
MsgBox "The entered start page and end page should be in integer format", vbInformation
Exit Sub
End If
xStartPage = CInt(xStartPageStr)
xEndPage = CInt(xEndPageStr)
If xStartPage > xEndPage Then
MsgBox "The start page number can't be larger than end page", vbInformation
Exit Sub
End If
If xEndPage > ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) Then
xEndPage = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
End If
For I = xStartPage To xEndPage
ActiveDocument.ExportAsFixedFormat xPathStr & "\Page_" & I & ".pdf", _
wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportFromTo, I, I, wdExportDocumentWithMarkup, _
False, False, wdExportCreateHeadingBookmarks, True, False, False
Next
End Sub
在这里,此模块将文件名保存为
ActiveDocument.ExportAsFixedFormat xPathStr & "\Page_" & I & ".pdf", _ ....
因此,文件名为Page_1、Page_2...
我是VBA新手,在看了教程后编写了此代码。
现在我只想从excel表列表,以便每个文件将保存为字符串作为表中的文件名。如Intro.pdf,Abstract.pdf,Details.pdf我怎么能做到这一点?
1条答案
按热度按时间6ojccjat1#
所以我的理解是,你想保存Word文档的每一页到一个单独的PDF与文件名取自Excel表?
为此,首先需要在VBA工程中添加对Microsoft Excel对象库的引用。为此,请打开Excel文件,转到VBA编辑器(按Alt+F11),点击菜单栏中的“工具”,然后从下拉菜单中选择“参考”。在“参考”对话框中,向下滚动找到“MicrosoftExcel对象库”并选中它旁边的复选框。2单击“确定”。
接下来,需要向VBA代码添加一个新变量,以保存对Excel文件的引用。让我们声明一个
Workbook
类型的变量:现在我们使用
Workbooks.Open
方法打开Excel文件。可以使用
Worksheets
集合访问包含具有文件名的表的工作表。使用
Range
访问单元格:现在我们循环遍历范围中的单元格,并使用每个单元格中的值作为相应PDF的文件名:
最后,完成后关闭Excel文件:
希望这有帮助!