将许多DOC文件转换为DOCX(Microsoft Word)
Christian拥有一个充满DOC文件的文件夹,他需要将其转换为DOCX文件。他想知道是否有一种快速的方法来转换它们,而无需单独打开和保存它们。
Microsoft没有在Word中提供此功能,也没有提供加载项来进行转换。但是,您可以创建自己的宏来进行转换。这里显示了一个相当简单的方法:
Sub ConvertBatchToDOCX() Dim sSourcePath As String Dim sTargetPath As String Dim sDocName As String Dim docCurDoc As Document Dim sNewDocName As String ' Looking in this path sSourcePath = "c:\Users\Administrator\Desktop\Testing\" sTargetPath = "c:\Users\Administrator\Desktop\Converted\" ' Look for first DOC file sDocName = Dir(sSourcePath & "*.doc") Do While sDocName <> "" ' Repeat as long as there are source files 'Only work on files where right-most characters are ".doc" If Right(sDocName, 4) = ".doc" Then ' Open file Set docCurDoc = Documents.Open(FileName:=sSourcePath & sDocName) sNewDocName = Replace(sDocName, ".doc", ".docx") With docCurDoc .SaveAs FileName:=sTargetPath & sNewDocName, _ FileFormat:=wdFormatDocumentDefault .Close SaveChanges:=wdDoNotSaveChanges End With End If ' Get next source file name sDocName = Dir Loop MsgBox "Finished" End Sub
为了使用宏,您需要进行两项更改。首先,在sSourcePath变量中指定包含要转换的文件的目录的完整路径(后跟反斜杠)。
然后,在sTargetPath变量中,指定转换后的文档应存储在其中的目录的完整路径(带有反斜杠)。
宏然后逐步浏览它在源目录中找到的所有DOC文件,打开它们,并将它们另存为DOCX文件在目标目录中。
请注意,我提到这是一种简单的方法。原因是因为它没有对其工作进行错误检查。例如,如果您连续两次运行此宏,则会收到错误消息,因为保存在目标目录中的文件已经存在。此外,您应该了解这会将所有DOC文件转换为DOCX文件。换句话说,如果原始文件中包含宏,则这些宏将在转换过程中被剥离。
最后,请注意,宏的心脏包含在If / Then结构中,该结构检查以确保文件名的最右边4个字符实际上是“ .doc”。之所以这样做,是因为Dir函数在某些系统上的行为非常糟糕,在这些系统上,搜索模式“ * .doc”会以匹配的方式返回_contains_ .doc的任何文件名。这意味着它还返回以.docx和.docm结尾的文件。显然,这些不应该转换,因此包含了If / Then结构以将它们淘汰掉。
如果您不想使用自己的宏,则可以使用第三方解决方案。格雷厄姆市长网站上的以下页面具有免费的加载项,除其他功能外,它将进行文档转换:
http://www.gmayor.com/document_batch_processes.htm
通过在Web上搜索“ doc docx转换器”(不带引号),您也许可以找到其他类似的转换器。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(643)适用于Microsoft Word 2007、2010、2013和2016。