因此,使用宏我可以创建新的工作表,其中一些单元格将被锁定。我在宏中使用这个方法:
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
所以我有一张新工作表,然后运行用户界面宏。它锁定整张纸。然后我运行锁定宏,在给定的单元格中写入5并再次锁定单元格。之后我保存了excel,关闭并打开它,我只想运行锁定宏。此时我收到了错误。
答案 0 :(得分:1)
显然,UserInterfaceOnly
选项未与文件一起存储,重新打开后,工作表受到完全保护,您无法解锁受保护工作表上的单元格。
您可以重置UserInterfaceOnly
选项而不进行取消保护,因此在您的示例中它将是
Sub locking()
ActiveSheet.Protect UserInterfaceOnly:=True
Range("A1").Locked = False
Range("A1") = 5
Range("A1").Locked = True
End Sub
当然在这个示例中,解锁单元格不是必需的,因为您已将选项设置为true,但我认为它与您的完整宏相关。