1

我有 Word 调查文件,每个文件都包含由主题填写的表格。到目前为止,我已经通过另存为 txt 并选择“将表单数据另存为分隔文本文件”选项手动导出了表单数据。

我想以编程方式将给定目录中的所有 .doc 文档保存为分隔文本文件。或者,如果这太复杂,一次保存一个文件就足够了。新的 txt 文件必须与原始 .doc 文件同名。

4

2 回答 2

3

感谢您的输入 Jan Schejbal。我已经用这段代码找到了解决方案,所以我将它分享给遇到同样问题的人。我从这里得到帮助

Sub Save_Forms_Data()
    Application.ScreenUpdating = False
    Dim strFolder As String, strFile As String, wdDoc As Document, strDocName As String
    strFolder = CurDir
    If strFolder = "" Then Exit Sub
    strFile = Dir(strFolder & "\*.doc", vbNormal)
    While strFile <> ""
        Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile,     AddToRecentFiles:=False, Visible:=False)
        With wdDoc
            strDocName = Left(.FullName, InStrRev(.FullName, ".")) & "txt"
            .SaveAs2 FileName:=strDocName, FileFormat:=wdFormatText,     AddToRecentFiles:=False, _
            SaveFormsData:=True, Encoding:=1252, InsertLineBreaks:=False, LineEnding:=wdCRLF
            .Close SaveChanges:=False
        End With
        strFile = Dir()
    Wend
    Set wdDoc = Nothing
    Application.ScreenUpdating = True
    Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub
于 2013-02-02T12:53:43.817 回答
1

您可以录制宏,这意味着您开始录制,执行某些操作,然后停止录制,并自动生成所述操作的 VBA 代码。代码可能不是很干净,但它应该为您提供一个良好的开端,向您展示语法的外观以及您的操作需要哪些命令。对于某些事情(例如动态指定文件名),您将需要查阅文档,但如果您有任何通用语言的编程经验,一旦您拥有宏提供的“骨架”,这应该不会造成重大问题录音机。

您想要自动化的越多,您需要学习的 VBA 就越多。由于 VBA 真的不难,而且如果你不自动化它,你面前似乎有很多重复的工作,我建议你学习它并谷歌你需要什么。这样,您将在相似的时间范围内完成您的工作(或更少,特别是如果这不仅仅是一次性的事情),下次您将有一个宏来做,它会不那么无聊,而且您会学了一点VBA。

于 2013-02-02T07:50:17.087 回答