Excel VBA多个离散工作表更改事件

时间:2017-11-02 16:26:10

标签: excel vba excel-vba

我正在尝试在单个工作表中合并多个单独的工作表更改事件,与显示/隐藏复选框相关。

以下代码适用于单个更改事件,但后续更改事件将被忽略。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If ActiveSheet.Range("L7").Value = "0" Then

ActiveSheet.CheckBoxes("Check Box 11").Visible = False

Else

ActiveSheet.CheckBoxes("Check Box 11").Visible = True

End If

If ActiveSheet.Range("g17").Value = "0" Then

ActiveSheet.CheckBoxes("Check Box 16").Visible = False

Else

ActiveSheet.CheckBoxes("Check Box 16").Visible = True

End If

End Sub

引用多个工作表更改事件的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

根据您提供的代码,这样的内容对您有用:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim CheckBoxName As String

    Select Case Target.Address(0, 0)
        Case "L7":  CheckBoxName = "Check Box 11"
        Case "G17": CheckBoxName = "Check Box 16"
    End Select

    Me.Shapes(CheckBoxName).Visible = (Target.Value <> 0)

End Sub