可以在不使用SaveAs方法(不使用任何方法保存文件)的情况下密码保护打开的Excel工作簿?无需保存VBA密码保护Excel工作簿
当前在我们的应用程序中,我们使用SaveAs方法保存并设置工作簿生成并填充数据后的密码。由于我们使用大量数据并且生成的文件非常大(120MB),所以此工作簿的生成需要一段时间。
我们正在寻找一些加速工作簿生成的方法,并且我们发现SaveAs方法需要大约3分钟才能完成,因为需要计算大量公式。经过与用户的小谈后,我们意识到每个人都会对工作簿的用户界面做一些小改动,所以他们需要再次保存并等待另外3分钟。
我们决定取消SaveAs方法,并且将在用户完成其更改后保存工作簿。这里是问题,没有SaveAs,我找不到用密码保护文件的方法。
我已经试过Workbook.Protect但现在看来,这不仅保护了结构和变化的窗口,不支持将文件从开口道:
ActiveWorkbook.Protect Password:=cPwd, Structure:=True, Windows:=False
我还发现了Workbook.ProtectSharing方法,但我没有因为文档说它保存了文件。
那么,有没有办法设置工作簿密码,而不保存将在用户更改后手动保存时应用的文件?
你可以防止自动计算,保存然后重新启用自动计算?这样的工作簿应该更快地保存。 – Gareth 2014-10-09 09:47:48
使用'Workbook.Password'属性。 – Rory 2014-10-09 09:52:51
谢谢Rory!我完全忘了检查文档中Workbook的属性,因为我只专注于函数。我可以确认它正在工作,无需保存文件。你想写你的评论作为答案,所以我可以接受它吗? – 2014-10-09 11:58:34