我怎样才能在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有关。