VBA密码保护Excel工作簿而不保存

时间:2014-10-09 09:19:09

标签: vba excel-vba excel

可以使用密码保护excel工作簿,而无需使用SaveAs方法(没有任何保存文件的方法)?

目前在我们的应用程序中,我们使用SaveAs方法在生成工作簿并填充数据后保存和设置密码。这个工作簿的生成需要一段时间,因为我们使用大量数据并且生成的文件非常大(120MB)。

我们正在寻找一些加速工作簿生成的方法,我们发现SaveAs方法需要大约3分钟才能完成,因为需要计算很多公式。在与用户进行了一次小谈话之后,我们意识到每个人都会对工作簿的UI进行一些小改动,然后他们需要再次保存并等待另外3分钟。

我们决定取消SaveAs方法,并且用户有责任在完成更改后保存工作簿。这就是问题,如果没有SaveAs,我找不到用密码保护文件的方法。

我已经尝试过Workbook.Protect,但它似乎只保护结构和窗口不受更改但不保护文件的打开:

ActiveWorkbook.Protect Password:=cPwd, Structure:=True, Windows:=False

我还找到了Workbook.ProtectSharing方法,但我没试过,因为文档说它保存了文件。

那么,有没有办法设置工作簿密码而不保存用户在更改后手动保存的文件?

1 个答案:

答案 0 :(得分:1)

您可以使用{/ 1}}属性,即读/写。密码将在下次保存文件时应用。