单元格值更改时运行的宏

时间:2013-04-02 21:24:47

标签: excel excel-vba vba

我真的不确定这段代码的问题是什么,或者我的工作表格式是否有问题但是当D8的值发生变化时,以下代码不会自动运行:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
   Toggle_Rows
End If
End Sub

是形成问题还是代码问题?

2 个答案:

答案 0 :(得分:1)

看到您的问题后Here

我希望你试试这个:

在工作簿中转到您希望更改D8值并运行代码的工作表。 在Excel的底部,右键单击带有该工作表名称的选项卡,然后选择查看代码

在代码窗口的顶部,您会看到“(常规)”一词。

点击下拉列表并选择“工作表”,您应该看到一个名为

的新子
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

您可以删除这些行。现在,在您选择工作表的右侧,另一个下拉列表,应该说“SelectionChange”单击,然后从下拉列表中选择“更改”。你应该看到另一个新的子

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

在这两行之间是你想要的地方

If Target.Address = "$D$8" Then
   Toggle_Rows
End If

答案 1 :(得分:0)

不是答案,而是一种调试方式。因为这对我来说都是手动和通过代码。

尝试使用以下方法之一来查看您获得的值:

Private Sub Worksheet_Change(ByVal Target As Range)

    MsgBox Target.Address        

    Debug.Print Target.Address

    If Target.Address = "$D$8" Then 
       Toggle_Rows
    End If    
End Sub