【发布时间】:2019-02-08 08:45:45
【问题描述】:
所以,我有一个 Word 模板,里面有宏。我想达到什么目标?
保存文件后,我想将 Word 文件另存为具有新名称和新目的地的新 docx 文件。
当我现在点击保存时,文件已经用新名称和新目的地正确保存(也作为 *docx 文件),但宏仍在内部,所以当我现在按保存时,宏仍在执行(这就是我想删除)。
那么如何在保存文件时删除新文件中的所有宏呢?
我当前的代码是:
Sub FileSave()
'
' saveFile Macro
'
'
DocDate = ActiveDocument.Tables(1).Cell(4, 2)
GCCName = ActiveDocument.Tables(1).Cell(8, 1)
FileExtension = ".docx"
matchedStr = GCCName & " - " & DocDate & FileExtension
matchedStr = Replace(matchedStr, "", "")
matchedStr = Replace(matchedStr, Chr(13), "")
ActiveDocument.Save
ChangeFileOpenDirectory "########\"
ActiveDocument.SaveAs2 FileName:= _
matchedStr, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", _
AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False, CompatibilityMode:=15
End Sub
【问题讨论】:
-
如果您有 Word 模板 (dotm),则不应打开模板来创建文档:您应该从一开始就创建一个新文档。如果新文档是由代码生成的,则使用
Documents.Add而不是Documents.New。新文档将包含 no 宏,可以毫无问题地保存为 docx。 -
@max_0512 一个 docx 文件 - 这是您的代码使用的保存格式 - 不能包含宏。但是,它可以继续访问它所基于的模板中的任何宏 - 前提是该模板是可访问的。