我真的不确定这段代码有什么问题,或者我的工作表的格式是否有问题,但是当值D8
更改时,以下代码不会自动运行:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
Toggle_Rows
End If
End Sub
是格式问题还是代码问题?
看到你的问题后在这里
我想让你试试这个:
在工作簿中,转到您希望更改 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
不是答案,而是一种调试方式。因为这对我手动和通过代码都有效。
尝试以下方法之一来查看您获得的值:
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