通过VBA问题及其解决方法来节省成本

时间:2016-06-17 11:14:37

标签: excel vba excel-vba save

我有一个相对较大的子程序,它在excel中的工作簿中传输大量数据并执行其他一些操作,然后使用activeWorkbook.save

将文件保存在子文件的末尾

但是由于我不知道的原因,当文件已经打开很长时间并且我保存它时会给我一条消息,说明该文件已被其他用户编辑并提示我要么通知其他用户而不是保存或覆盖其他用户所做的任何更改。是否有一种方法可以对子进行编码以使其无论如何都被覆盖,因此如果出现该对话框,它是否会阻止子运行?

此外,没有其他人编辑该文件,所以我不知道为什么它首先给我这个消息,我只是想让它绕过它,如果碰巧出现。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我想我们终于找到了解决这个问题的方法:

ThisWorkbook.Saved = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs ThisWorkbook.FullName, FileFormat:=52
Application.DisplayAlerts = True
If Not ThisWorkbook.Saved Then MsgBox "Saving the file failed." & Chr(10) & "Please try again later..."

工作簿的.Saved属性是可读写的。因此,第一行确保此文件标记为"未保存"。这很重要,因为更改已被禁用,我们不知道文件是否已真正保存(没有此属性)。

一旦尝试保存文件(此处为.xlsm,您可能希望/必须更改该文件),将读取.Saved属性以确保保存实际有效。