如何在Word文档中将Excel工作簿中的数据导入VBA?

jslywgbw  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(289)

我正试图输出我的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我怎么能做到这一点?

6ojccjat

6ojccjat1#

所以我的理解是,你想保存Word文档的每一页到一个单独的PDF与文件名取自Excel表?
为此,首先需要在VBA工程中添加对Microsoft Excel对象库的引用。为此,请打开Excel文件,转到VBA编辑器(按Alt+F11),点击菜单栏中的“工具”,然后从下拉菜单中选择“参考”。在“参考”对话框中,向下滚动找到“MicrosoftExcel对象库”并选中它旁边的复选框。2单击“确定”。
接下来,需要向VBA代码添加一个新变量,以保存对Excel文件的引用。让我们声明一个Workbook类型的变量:

Dim xlWorkbook As Workbook

现在我们使用Workbooks.Open方法打开Excel文件。

Set xlWorkbook = Workbooks.Open("C:\path\to\Excel\file.xlsx")

可以使用Worksheets集合访问包含具有文件名的表的工作表。

Dim xlWorksheet As Worksheet
Set xlWorksheet = xlWorkbook.Worksheets("Sheet1")

使用Range访问单元格:

Dim xlRange As Range
Set xlRange = xlWorksheet.Range("A1:A10")

现在我们循环遍历范围中的单元格,并使用每个单元格中的值作为相应PDF的文件名:

For I = xStartPage To xEndPage
    Dim fileName As String
    fileName = xlRange.Cells(I - xStartPage + 1).Value
    ActiveDocument.ExportAsFixedFormat xPathStr & "\" & fileName & ".pdf", _
    wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportFromTo, I, I, wdExportDocumentWithMarkup, _
    False, False, wdExportCreateHeadingBookmarks, True, False, False
Next

最后,完成后关闭Excel文件:

xlWorkbook.Close

希望这有帮助!

相关问题