2014-10-09 107 views
0

可以在不使用SaveAs方法(不使用任何方法保存文件)的情况下密码保护打开的Excel工作簿?无需保存VBA密码保护Excel工作簿

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

我们正在寻找一些加速工作簿生成的方法,并且我们发现SaveAs方法需要大约3分钟才能完成,因为需要计算大量公式。经过与用户的小谈后,我们意识到每个人都会对工作簿的用户界面做一些小改动,所以他们需要再次保存并等待另外3分钟。

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

我已经试过Workbook.Protect但现在看来,这不仅保护了结构和变化的窗口,不支持将文件从开口道:

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

我还发现了Workbook.ProtectSharing方法,但我没有因为文档说它保存了文件。

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

+0

你可以防止自动计算,保存然后重新启用自动计算?这样的工作簿应该更快地保存。 – Gareth 2014-10-09 09:47:48

+1

使用'Workbook.Password'属性。 – Rory 2014-10-09 09:52:51

+0

谢谢Rory!我完全忘了检查文档中Workbook的属性,因为我只专注于函数。我可以确认它正在工作,无需保存文件。你想写你的评论作为答案,所以我可以接受它吗? – 2014-10-09 11:58:34

回答

1

您可以使用Workbook.Password属性,它是可读/写的。密码将在下次保存文件时应用。

相关问题