我阅读了很多文章,但没有找到与我要达到的目标类似的东西。我的工作表中基本上有一些Shape
对象,这些对象具有分配给它们的宏。我想使用VBA保护这些对象,以便用户可以与它们进行交互,但不能以任何方式对其进行编辑。但是,我希望用户(和我的VBA)能够根据需要自由地操纵工作簿的其余部分。
我尝试了ActiveSheet.Protect DrawingObjects:=True
,但问题是该应用程序其余部分的可用性也很有限。例如,我有一个复选框可以隐藏/取消隐藏一定范围的单元格,但是当工作表受到保护时,我将无法执行宏,并且会收到异常。有没有一种方法可以只保护Shape
对象,并且基本上使工作簿的其余部分不受限制,就好像工作表没有受到保护一样?
谢谢, Dimitar
答案 0 :(得分:1)
如果省略其他参数,则将获得其默认值。做类似这样的事情:
ActiveSheet.Protect DrawingObjects:=True, _
Contents:=False, _
Scenarios:=False, _
UserInterfaceOnly:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
答案 1 :(得分:0)