这应该很简单 . 当单元格的值发生变化时,我想触发一些VBA代码 . 单元格(D3)是来自另外两个单元格 =B3*C3
的计算 . 我试过两种方法:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Row = 3 Then
MsgBox "There was a change in cell D3"
End If
End Sub
由于单元格是计算,因此在值更改时不会触发,因为计算保持不变 . 我也尝试过:
Private Sub Worksheet_Calculate()
MsgBox "There was a calculation"
End Sub
但我在工作表上有多个计算,它会多次触发 . 有没有办法可以确定哪个计算在计算事件中发生了变化?还是有另一种方法可以跟踪D3何时发生变化?
4 回答
你能尝试这样的吗?将公式更改为
=D3AlertOnChange(B3*C3)
.或者试试
如果更改没有依赖项的单元格,则需要错误控制 .
试试这个:
寻找单元格B1值的变化,然后执行“宏”
如果您只查看Worksheet_Change,那么即使它与之前的值相同,它也会对输入的任何内容进行更改 . 为了解决这个问题,我使用Public变量来捕获起始值并进行比较 .
这是我的代码 . 它还允许您省略工作表的某些部分,或者您可以使用它来评估工作表中的每个单元格 .
将此代码放在工作表中 .