我在目标栏中有一系列值。
一旦该范围中的任何值发生变化,就应该调用一个宏。
我调用的宏工作但我的更改事件没有被识别。我的代码有问题吗?
我的更改偶数宏位于发生更改事件的工作表上:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$5:$H$32" Then
Call SetAxes
End If
End Sub
我是否需要更具体的范围地址?
答案 0 :(得分:1)
If Not Application.Intersect(Target, Range("$H$5:$H$32")) Is Nothing Then
只有在整个范围一次变化时才会为True。
要捕获对该范围内的一个或多个单元格的更改,请使用Application.Intersect,如下所示:
{{1}}
答案 1 :(得分:0)
我只是使用worksheet_calculate
并在工作表上发生任何变化时调用该函数
它调用的所有宏都设置了轴,所以我不介意它是否重复运行。
Private Sub Worksheet_Calculate()
Call SetAxes
End Sub
答案 2 :(得分:0)
作为解决方法,您可以添加一个函数:
Function FakeChange() As Integer
SetAxes
FakeChange = 0
End Function
并在“$ H $ 5:$ H $ 32”+ Fakechange()中添加公式 喜欢:='你的公式'+ FakeChange()
当公式的结果发生变化时,将触发此功能