0

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

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

是格式问题还是代码问题?

4

2 回答 2

1

看到你的问题后在这里

我想让你试试这个:

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

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

单击下拉菜单并选择“WorkSheet”,您应该会看到一个名为

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
于 2013-04-02T22:41:31.583 回答
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
于 2013-04-02T21:54:57.523 回答