Excel VBA:对话框(xlDialogProtectDocument)的用法。显示
我想预设Excel的“保护工作表”对话框。我希望它预设如下屏幕截图所示: 使用某些预设打开此对话框的一种方法是:Excel VBA:对话框(xlDialogProtectDocument)的用法。显示,vba,excel,Vba,Excel,我想预设Excel的“保护工作表”对话框。我希望它预设如下屏幕截图所示: 使用某些预设打开此对话框的一种方法是: Application.Dialogs(xlDialogProtectDocument).Show arg1:=True 这将设置/取消设置对话框中的第一个复选框 根据本标准,允许的参数为: contents, windows, password, objects, scenarios 一些尝试和错误并没有揭示是否以及如何预设底部列表中的复选框 可能吗?如果是,如何操作?正如l
Application.Dialogs(xlDialogProtectDocument).Show arg1:=True
这将设置/取消设置对话框中的第一个复选框
根据本标准,允许的参数为:
contents, windows, password, objects, scenarios
一些尝试和错误并没有揭示是否以及如何预设底部列表中的复选框
可能吗?如果是,如何操作?正如lturner在评论中注意到的,对话框会记住以前使用的设置。这包括通过VBA设置板材保护时使用的设置。因此,在使用打开对话框之前,通过VBA设置+取消设置保护
Application.ThisWorkbook.Sheets(1).Protect AllowFormattingCells:=True
Application.ThisWorkbook.Sheets(1).Unprotect
Application.Dialogs(xlDialogProtectDocument).Show
是否根据需要生成复选框
上提供了.Protect
方法的所有可能选项的列表
这是一个丑陋的解决方案,因为它有副作用(板材在过程中很快受到保护),并且是基于副作用。因此,我暂时不会接受这个答案。欢迎并接受更好的答案。如果您想预设静态选项,那么为什么不保护工作表,勾选要启用的选项,然后再次取消保护。下次有人去保护工作表时,之前选择的选项将被保留。你是对的。Excel确实记得以前的设置。我没有注意到的原因是,在我的项目中,有大量VBA宏用于设置和取消该工作表上的保护(通过
.unprotect
/.protect
),这会弄乱预设(以及工作表本身的保护!)。这一见解实际上可能使这个问题与我的具体情况无关。谢谢你的关注!