0

我为工作表编写了代码,每次更改数字时,如果方差大于 10%、20% 或 +20%,它就会改变颜色。所以我在“General”和“Private Sub Selection_Worksheet”上都使用了宏代码,这样每次单元格的数字发生变化时,它都会改变颜色。

我已经锁定并隐藏了一些显示公式的单元格,并编写了代码

    Sheets("Financials").Protect Password:="Ottawa", UserInterFaceOnly:=True

在 General 和“Private Sub Selection_Worksheet”上,每次单击任何单元格时都会出现运行时错误。

我该如何解决这个问题?我只希望他们使用某些单元格并在受到保护和隐藏的同时仍然运行宏。

谢谢,

丹尼尔

4

1 回答 1

0

不幸的是,保护UserInterface:=True有点误导:如果您在保存后重新打开文件,该状态将丢失并且工作表再次受到完全保护。

因此,最好也更改代码以处理保护:

Private Const cStrPwd as String = "Ottawa"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '你检查代码是否应该运行的条件在这里,例如:
    如果 Application.Intersect(Target, Me.Range("A1:B10")) 是 Nothing 或 _
        Me.Range("B2") < 0.2 然后退出子

    Me.Unprotect 密码:=cStrPwd

    '你的代码在这里
    MsgBox "你成功了!干得好,伙计!"

    Me.Protect 密码:=cStrPwd
结束子
于 2013-01-17T07:20:56.263 回答