将多个MS Word文档转换为txt文件(少量额外位)

时间:2018-02-01 09:45:58

标签: vba ms-word ms-office word-vba

我目前正致力于将大量MS Word表单转移到数据库系统中。

目前我的方法是:

  1. 打开单个单词文档
  2. 转到高级选项以更改保存设置,以便仅将表单数据另存为分隔文本文件
  3. 保存并单击“确定”以弹出提示窗口
  4. 使用cmd合并所有txt文件
  5. 导入excel并处理
  6. 希望在这些阶段结束时,我将获得一个可以转移到数据库系统的相当整理的Excel信息文件。

    我的问题是,因为我有很多单词文档(我觉得它是一个机器人,经过大约100个),我可以自动化1)2)和3)的过程吗?

    任何帮助都会非常感激,我之前在python中编写过脚本并完成了一些简单的编程,但欢迎使用任何解决方案。

1 个答案:

答案 0 :(得分:2)

您可以使用VBA宏自动执行步骤1-3。使用Document.SaveAs方法,您只能将表单数据保存到txt文件:

ActiveDocument.SaveAs ActiveDocument.FullName & ".txt", _
    WdSaveFormat.wdFormatText, SaveFormsData:=True

然后,您可以循环调用此SaveAs方法覆盖给定文件夹中的所有文档:

Sub SaveAllFormData(path As String)
    Dim doc As Document
    Dim fileName As String

    fileName = Dir(path & "*.doc")

     ' Loop through all .doc files in that path
    Do While fileName <> ""
        Set doc = Application.Documents.Open(path & fileName)

         ' Save form data
        doc.SaveAs2 doc.FullName & ".txt", WdSaveFormat.wdFormatText, SaveFormsData:=True

        doc.Close wdDoNotSaveChanges
        fileName = Dir
    Loop
End Sub

如果您在设置和运行宏时需要帮助,请查看文档:{​​{3}}