我怎样才能在excel中处理这个单元格锁定? (VBA)

时间:2016-11-09 13:36:21

标签: excel vba 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

所以我有一张新工作表,然后运行用户界面宏。它锁定整张纸。然后我运行锁定宏,在给定的单元格中写入5并再次锁定单元格。之后我保存了excel,关闭并打开它,我只想运行锁定宏。此时我收到了错误。

1 个答案:

答案 0 :(得分:1)

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

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

Sub locking()

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

End Sub

当然在这个示例中,解锁单元格不是必需的,因为您已将选项设置为true,但我认为它与您的完整宏相关。