我如何在excel中处理这个单元格锁定?(VBA)



所以用宏我可以创建新的工作表,其中一些单元格将被锁定。我在宏中使用这个方法:

ActiveSheet.Protect UserInterfaceOnly:=False(适用于整个新表)然后在这个宏中,对于某些细胞:locked = False

然后使用locked属性,其他宏使用True或False切换特定单元格的锁定。例如,此工作表中的表被锁定,但是按钮的宏重新计算并重写表的值,为此,在宏table.Locked = False的开始,在宏Locked = True的结束。

但是当我保存excel,关闭并再次打开它时,我按下按钮,但我得到"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

我有一个新的工作表,我运行userinterface宏。它锁住了整个床单。然后我运行锁定宏,在给定的单元格中写入5,并再次锁定单元格。之后,我保存excel,关闭并打开它,我只想运行锁定宏。此时我得到了错误

显然,UserInterfaceOnly选项不与文件一起存储,重新打开后,工作表完全受保护,您无法解锁受保护工作表上的单元格。

您可以在不取消保护的情况下重置UserInterfaceOnly选项,因此在您的示例中,它将是

Sub locking()
    ActiveSheet.Protect UserInterfaceOnly:=True
    Range("A1").Locked = False
    Range("A1") = 5
    Range("A1").Locked = True
End Sub

当然,在这个例子中解锁单元格是不必要的,因为你已经将选项设置为true,但我认为它在你的整个宏中是相关的。

最新更新