如何通过VBA将Word文档纯文本无格式复制到另一新建Word文档
Word VBA 提取当前文档纯文本到新DOCX修复方案
原有代码问题清单
- 变量声明语法错误:
targetDocAs缺少空格拆分变量名和类型,声明行尾多余逗号不符合VBA语法规则 - 路径调用错误:
myPath是当前文档所在文件夹路径,不能直接传入Documents.Open作为打开参数 - 逻辑不符合需求:需求为新建空白文档存储纯文本,原有代码逻辑是打开已存在的
1.docx文件 - 粘贴保留原格式:普通
Paste方法会携带原始格式,不符合纯文本提取要求 - 保存路径未赋值:
myPath2变量未初始化,SaveAs方法执行会报错
修正后可直接运行代码
Sub extract_text() Dim originalDoc As Document, targetDoc As Document Dim savePath As String ' 绑定当前处于活动状态的原文档 Set originalDoc = ActiveDocument ' 新建空白目标文档 Set targetDoc = Documents.Add ' 复制原文档全部内容 originalDoc.Content.Copy ' 仅粘贴纯文本,完全丢弃原格式设置 targetDoc.Content.PasteSpecial DataType:=wdPasteText ' 保存路径默认设置为原文档同目录,文件名为「纯文本提取结果.docx」,可自行修改 savePath = originalDoc.Path & "\纯文本提取结果.docx" targetDoc.SaveAs2 Filename:=savePath, FileFormat:=wdFormatXMLDocument ' 不需要关闭原文档可删除下一行 originalDoc.Close SaveChanges:=False targetDoc.Close SaveChanges:=False End Sub
使用说明
- 代码运行前确保要提取文本的Word文档处于活动(当前打开正在浏览)状态
- 如需修改保存的文件名,只需调整
savePath赋值语句中\后的文件名部分即可 - 如果需要保留原文档打开状态,删除
originalDoc.Close SaveChanges:=False这一行即可
内容的提问来源于stack exchange,提问作者Satanas
相关产品推荐
相关产品推荐

