我怎样才能在Excel中处理这个单元格锁? (VBA)
所以用macros可以创build新的表格,其中一些单元格将被locking。 我在macros中使用这个方法:
ActiveSheet.Protect UserInterfaceOnly:=False
(对于整个新工作表)然后在这个macros的一些单元格: locked = False
然后用locking的属性,其他macros使用True或False切换特定单元的locking。 例如,这个表中的一个表被locking,但是button的macros重新计算并重写了表的值,并且在macros的开始处这样做, table.Locked = False
,并且在macros的末尾Locked = True
再说一次
但是,当我保存Excel,closures并再次打开,我按下button,但我得到"unable to set the Locked property"
我应该怎么做?
更新:
Sub userinterface() ActiveSheet.Protect UserInterfaceOnly:=True End Sub Sub locking() Range("A1").Locked = False Range("A1") = 5 Range("A1").Locked = True End Sub
所以我有一个新的表,并运行userinterfacemacros。 它locking整个表格。 然后我运行lockingmacros,在给定单元格中写入5,并再次locking单元格。 之后,我保存Excel,closures并打开它,我只是想运行lockingmacros。 在这一点上,我得到的错误。
显然, UserInterfaceOnly
选项不会与文件一起存储,并且在重新打开之后,工作表将被完全保护,您无法解锁受保护工作表上的单元格。
您可以重置UserInterfaceOnly
选项,而不会在您的示例中取消保护
Sub locking() ActiveSheet.Protect UserInterfaceOnly:=True Range("A1").Locked = False Range("A1") = 5 Range("A1").Locked = True End Sub
当然在这个例子中,解锁单元并不是必须的,因为你已经将选项设置为true,但是我认为它与你的完整macros有关。