首页 > 解决方案 > 合并两个宏脚本 (WORD)

问题描述

我有两个宏脚本,两个都可以完美地单独工作!但我想对它们进行标记并拥有 1 个脚本。基本上,我想将 WORD 文档(如 100 页)中的所有页面保存为 PDF,并根据每页的第 3 行命名每个文件。因此,第一个脚本是以下转换为 PDF 的脚本:


Sub SaveAsSeparatePDFs()

Dim strDirectory As String, strTemp As String, ipgEnd As Integer
Dim iPDFnum As Integer, i As Integer

strTemp = InputBox("How many pages is included?" & vbNewLine & "(ex: 60)")
ipgEnd = CInt(strTemp)
strDirectory = Environ("USERPROFILE") & "\Desktop"
        
iPDFnum = 1
For i = 1 To ipgEnd
    
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        strDirectory & "\User--" & iPDFnum & FirstPara & ".pdf", ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
        wdExportFromTo, From:=i, To:=i + 1, Item:=wdExportDocumentContent, _
        IncludeDocProps:=False, KeepIRM:=False, CreateBookmarks:= _
        wdExportCreateHeadingBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=False, UseISO19005_1:=False
    iPDFnum = iPDFnum + 1
    
    i = i + 1
Next i
End
End Sub

这是根据 WORD 文档的第三行重命名每个文件的第二个脚本:

Sub SaveAsWordAndRename()

Dim oSection As Section
Dim r As Range
Dim TempDoc As Document
Dim FirstPara As String

Dim strDirectory As String, strTemp As String, ipgEnd As Integer
Dim iPDFnum As Integer, i As Integer

For Each oSection In ActiveDocument.Sections
Set r = oSection.Range
r.End = r.End - 1
Set TempDoc = Documents.Add
With TempDoc
.Range = r
FirstPara = r.Paragraphs(3).Range.Text
FirstPara = Left(FirstPara, Len(FirstPara) - 1)
.SaveAs FileName:=FirstPara & ".doc"
.Close
End With
Set r = Nothing
Set TempDoc = Nothing
Next
End Sub


标签: excelvbams-word

解决方案


推荐阅读