如何在Word VBA中移除文件名的Redlines并另存为新文件与PDF?
Word宏修改:移除文件名中的"Redlines"并导出同名PDF
需求明确:从带"Redlines"标识的Word文档文件名中移除该字符串,生成清洁版docx文件,同时导出同名PDF。以下是修改后的完整宏代码及关键说明:
修改后的宏代码
Sub CleanAndExportPDF() ' ' 移除文件名中的"Redlines",保存清洁版docx并导出同名PDF ' Dim originalPath As String Dim originalFileName As String Dim cleanBaseName As String Dim cleanDocxPath As String Dim pdfPath As String ' 保存原始带修订的文档 ActiveDocument.Save ' 获取原始文件路径和文件名(不含扩展名) originalPath = ActiveDocument.Path originalFileName = Left(ActiveDocument.Name, InStrRev(ActiveDocument.Name, ".") - 1) ' 移除"Redlines"并清理多余空格 cleanBaseName = Replace(originalFileName, "Redlines", "") cleanBaseName = Trim(cleanBaseName) ' 去除前后空格 cleanBaseName = Replace(cleanBaseName, " ", " ") ' 替换中间多个空格为单个(可选,按需调整) ' 构建清洁版docx和PDF的完整路径 cleanDocxPath = originalPath & "\" & cleanBaseName & ".docx" pdfPath = originalPath & "\" & cleanBaseName & ".pdf" ' 保存清洁版docx ActiveDocument.SaveAs2 FileName:=cleanDocxPath, _ FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _ AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _ EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _ :=False, SaveAsAOCELetter:=False, CompatibilityMode:=15 ' 接受所有修订并保存清洁版 ActiveDocument.TrackRevisions = False ActiveDocument.AcceptAllRevisions ActiveDocument.Save ' 导出同名PDF ActiveDocument.ExportAsFixedFormat OutputFileName:=pdfPath, _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False End Sub
关键部分说明
- 文件名处理逻辑:
- 先获取原始文件的路径和不带扩展名的文件名
- 用
Replace函数移除"Redlines"字符串 - 用
Trim去除替换后可能出现的首尾空格,可选替换中间多个空格为单个,避免出现类似"My File.docx"的情况
- 路径构建:基于原始路径生成清洁版docx和PDF的完整路径,确保文件保存在同一目录下
- 修订处理:关闭修订追踪并接受所有修订,保证生成的是无标记的清洁文档
内容的提问来源于stack exchange,提问作者KoldBeans
相关产品推荐
相关产品推荐

