Word VBA中ActiveDocument.Save NoPrompt:=True参数数量错误问题求助
解决Word VBA中
ActiveDocument.Save NoPrompt:=True参数错误问题 问题原因
Word 365版本更新后,Save方法的参数定义发生了变化,原有的NoPrompt参数不再被Save方法支持,仅在更新后的Save2方法中保留;另外如果操作的是从未保存过的新建文档,直接调用Save方法也会触发参数错误,因为此时需要指定保存路径。
解决方案
1. 替换Save为Save2方法
将报错的语句替换为Word 365推荐的更新方法:
ActiveDocument.Save2 NoPrompt:=True
Save2是Word后续版本新增的方法,兼容原Save的功能同时保留了NoPrompt等扩展参数。
2. 增加文档状态判断(针对新建未保存文档)
如果宏可能处理新建文档,先判断文档是否已有保存路径,避免无路径时调用Save报错:
With ActiveDocument If .Path <> "" Then ' 已保存过的文档直接保存 .Save2 NoPrompt:=True Else ' 未保存的文档先指定路径保存(示例路径,可根据需求修改) .SaveAs2 FileName:="C:\Documents\MyLetter.docx", NoPrompt:=True End If End With
3. 检查宏的文档操作逻辑
确认宏执行时,操作的文档是否是预期的已保存文档。如果是从模板新建的文档,确保宏里先完成保存操作,再执行打印逻辑。
内容的提问来源于stack exchange,提问作者Dr. Brian Hart
相关产品推荐
相关产品推荐

