Excel VBA:Dialog(xlDialogProtectDocument).Show的用法

时间:2015-08-10 09:40:47

标签: vba excel-vba excel

我想预设Excel的 Protect Sheet 对话框。我希望它预设为此屏幕截图: First three checkboxes set

使用某些预设打开此对话框的一种方法是:

Application.Dialogs(xlDialogProtectDocument).Show arg1:=True

设置/取消设置对话框中的第一个复选框。

根据official documentation,允许的参数是:

contents, windows, password, objects, scenarios

某些反复试验并未显示是否可以预设底部列表中的复选框。

这可能吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

正如注释中的lturner所注意到的,对话框会记住以前使用的设置。此 包括通过VBA设置表单保护时使用的设置。因此,在使用

打开对话框之前,通过VBA设置+取消设置保护
Application.ThisWorkbook.Sheets(1).Protect AllowFormattingCells:=True
Application.ThisWorkbook.Sheets(1).Unprotect
Application.Dialogs(xlDialogProtectDocument).Show

会生成所需的复选框。

official documentation page上提供了.Protect方法的所有可能选项的列表。

这是一个丑陋的解决方案,因为它有副作用(片材在此过程中很快受到保护)并且基于副作用。因此,我现在不接受这个答案。欢迎提出更好的答案并接受。