Vba 以编程方式保存Microsoft Word文档时,如何更改文件格式?
我当前正在修改Microsoft Word文档,以提示用户在保存时执行某些操作 在他们选择一个答案后,我想将文档另存为不同的文件类型,特别是将其从.docm文件转换为.docx文件Vba 以编程方式保存Microsoft Word文档时,如何更改文件格式?,vba,ms-word,Vba,Ms Word,我当前正在修改Microsoft Word文档,以提示用户在保存时执行某些操作 在他们选择一个答案后,我想将文档另存为不同的文件类型,特别是将其从.docm文件转换为.docx文件 Sub FileSave() Dim myQ As Integer With ActiveDocument myQ = MsgBox("Is this the Final version of this document? Clicking 'Yes' will permanently disab
Sub FileSave()
Dim myQ As Integer
With ActiveDocument
myQ = MsgBox("Is this the Final version of this document? Clicking 'Yes' will permanently disable macros for moving issues and remove the blank final page.", vbQuestion + vbYesNo)
If myQ = vbYes Then
.SaveAs2 ActiveDocument.Name & ".docx"
DeleteFinalPage
Else
.SaveAs2 ActiveDocument.Name
End If
End With
End Sub
如您所见,这将文档保存为“DocumentNameHere.docm.docx”
我该如何处理文件名中讨厌的.docm?要处理.docm,我会这样做
.saveAs2 left(ActiveDocument.Name,len(ActiveDocument.Name)-5)
这将去掉
ActiveDocument.Name
的最后5个字符,只留下文档名而不是扩展名 不要使用文件扩展名来表示文件类型。不要使用固定数量的字符来删除扩展-这对于老式的.doc(而不是.docm)将失败。使用InStrRev。这是为这样的事情而设计的
去掉扩展名,然后使用专门用于此目的的参数FileFormat另存为所需类型
doc.SaveAs2左(doc.Name,InStrRev(doc.Name,“.”-1),wdSaveFormat.wdFormatXMLDocument
这起作用了,但没有。我愚蠢地认为你可以改变分机,一切都会好起来的。但是,在我更改扩展名并打开新的.docx文件后,我得到了以下信息:“无法打开文件FileNameHere.docx,因为内容有问题。细节?这确实解决了我以前的问题。你们太棒了!谢谢我假设仅仅更改扩展不会修改任何使.docx和.docm不同的内部垃圾?这就是为什么我们使用文件格式来转换它?@Arcus很高兴它起了作用。您是对的-文件扩展名只是将文件与Windows中的应用程序相关联。但是,Word不允许您以与其扩展名不同的格式打开/保存文件(出于各种原因,主要是出于安全原因)