excel - 合并两个宏脚本 (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
解决方案
推荐阅读
- javascript - 如何以 django 形式创建一个运行总输入字段?
- xml - 我需要使用“组”和“字段”映射一个 XML 文件(没有可用的 XSD),其中字段 NAME 用于映射
- javascript - 如何在不使用数组 [键] 的情况下访问数组值?
- sql-server - SSIS 中的 OData 目标
- html - Angular 6:在使用公共 api 的数据库时创建我自己的数据库?
- angular - 具有多个条件和重定向的 Angular 防护
- numpy - 如何获得与contourf相对应的数组?
- sql-server - SSIS – 如何使用我的自定义日志提供程序获取自定义日志条目?
- model-binding - 模型绑定Asp net core 2.2
- local-storage - NGXS 和 LocalStorage:如何从本地存储中排除某些数据