我为工作表编写了一个代码,每次更改数字时,如果varaince大于10%,20%或+ 20%,它会改变颜色。所以我在“General”和“Private Sub Selection_Worksheet”上都使用了宏代码,这样每当单元格的数量发生变化时,它就会改变颜色。
我已经锁定并隐藏了一些显示公式的单元格,并编写了代码
Sheets("Financials").Protect Password:="Ottawa", UserInterFaceOnly:=True
在General和“Private Sub Selection_Worksheet”上,每次点击任何单元格时都会给我一个运行时错误。
如何解决此问题?我只希望他们使用某些单元格,并在保护和隐藏时仍然运行宏。
谢谢,
丹尼尔
答案 0 :(得分:0)
遗憾的是,使用UserInterface:=True
进行保护有点误导:如果在保存后重新打开文件,则该状态会丢失,工作表将再次受到完全保护。
因此,最好更改代码以处理保护:
Private Const cStrPwd as String = "Ottawa" Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Your conditions to check if code should run go here, e.g.: If Application.Intersect(Target, Me.Range("A1:B10")) Is Nothing Or _ Me.Range("B2") < 0.2 Then Exit Sub Me.Unprotect Password:=cStrPwd 'Your code here MsgBox "You've successfully done something! Nice job, mate!" Me.Protect Password:=cStrPwd End Sub