防止只读模式和保存问题。

时间:2015-05-21 13:40:23

标签: vba word-vba

我在Visual Basic中有一些代码,它可以在几个月内完美运行。但在某些时候,这段代码停止了工作:

'Save changes to original document
ActiveDocument.Save   ' <- This line causes trouble
'the next line copies the active document
Application.Documents.Add ActiveDocument.FullName
'the next line saves the copy to your location and name
ActiveDocument.SaveAs SaveAsPath, wdFormatXMLDocumentMacroEnabled

Word不会像评论中所说的那样保存原始文档,而是弹出一个窗口并要求将文档保存到该文件夹​​中。它从未发生过 - 文档只是保存而没有任何额外的步骤。可能这一切都发生了,因为文档开始以只读模式打开(但我不记得过去的模式,而且我不知道如何更改此模式)。我扫描了几十个论坛。

修改

顺便说一句,我也有类似的代码来保存Excel文件,就像这样:

'Save changes to original document
 ActiveWorkbook.Save
'the next line saves the copy to your location and name
 ActiveWorkbook.SaveCopyAs SaveAsPath

奇怪的是excel文件也以只读模式打开,但代码仍可正常工作。

修改

这个非常非常古老的link也出现了同样的错误。如果我尝试保存文档,我也可以注册Run-Time Error '5155'

1 个答案:

答案 0 :(得分:-1)

这是解决方案(而不是ActiveWorkbook.Save):

FN = Replace(ActiveDocument.Name, "temp_", "")
FN = "temp_" + FN
'Save changes to original document
ActiveDocument.SaveAs FileName:=ActiveDocument.Path + Application.PathSeparator + FN