我在Word 2013中使用VBA脚本(见下文)将.rtf文件的文件夹转换为.docx文件。它主要起作用,但有两个小问题。
这些问题是否有任何修复?第一种破坏脚本的整个点,我担心第二种会导致不可预见的问题。
Sub ConvertRtfToDocx()
Set oWord = CreateObject("Word.Application")
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select folder..."
.Show
myFolder = .SelectedItems.Item(1)
End With
myWildCard = InputBox(prompt:="Enter wild card...")
myDocs = Dir(myFolder & "\" & myWildCard)
While myDocs <> ""
Debug.Print myDocs
Set oDoc = oWord.Documents.Open(myFolder & "\" & myDocs)
oDoc.SaveAs myFolder & "\" & Left(myDocs, Len(myDocs) - 4) & ".docx", _
wdFormatXMLDocument
myDocs = Dir()
Wend
oWord.Quit
End Sub
答案 0 :(得分:2)
以下代码有效。
Sub ConvertRtfToDocx()
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select folder..."
.Show
myFolder = .SelectedItems.Item(1)
End With
myWildCard = InputBox(prompt:="Enter wild card...")
myDocs = Dir(myFolder & "\" & myWildCard)
While myDocs <> ""
Documents.Open FileName:=myFolder & "\" & myDocs, ConfirmConversions:=False
ActiveDocument.SaveAs2 FileName:=myFolder & "\" & Left(myDocs, Len(myDocs) - 4) & ".docx", _
FileFormat:=wdFormatDocumentDefault, _
CompatibilityMode:=wdCurrent
ActiveDocument.Close SaveChanges:=False
myDocs = Dir()
Wend
End Sub
我做了一些重组(例如,使用ActiveDocument
而不是创建我自己的对象),但真正的改变是
ConfirmConversions:=False
SaveAs2
方法并设置FileFormat:=wdFormatDocumentDefault
和CompatibilityMode:=wdCurrent
我猜这两个都可以设置为默认值(我被Office选项淹没并保留默认值)。