我有 Word 调查文件,每个文件都包含由主题填写的表格。到目前为止,我已经通过另存为 txt 并选择“将表单数据另存为分隔文本文件”选项手动导出了表单数据。
我想以编程方式将给定目录中的所有 .doc 文档保存为分隔文本文件。或者,如果这太复杂,一次保存一个文件就足够了。新的 txt 文件必须与原始 .doc 文件同名。
感谢您的输入 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
您可以录制宏,这意味着您开始录制,执行某些操作,然后停止录制,并自动生成所述操作的 VBA 代码。代码可能不是很干净,但它应该为您提供一个良好的开端,向您展示语法的外观以及您的操作需要哪些命令。对于某些事情(例如动态指定文件名),您将需要查阅文档,但如果您有任何通用语言的编程经验,一旦您拥有宏提供的“骨架”,这应该不会造成重大问题录音机。
您想要自动化的越多,您需要学习的 VBA 就越多。由于 VBA 真的不难,而且如果你不自动化它,你面前似乎有很多重复的工作,我建议你学习它并谷歌你需要什么。这样,您将在相似的时间范围内完成您的工作(或更少,特别是如果这不仅仅是一次性的事情),下次您将有一个宏来做,它会不那么无聊,而且您会学了一点VBA。