excel VBA在单元格更改时自动运行macros

在这个链接之后,我发现了很多我的问题的答案: 在单元格更改时自动执行Excelmacros

我打开一个新问题的原因是因为我没有足够的信誉来评论这个线程,而且我很难将我的链接单元连接到我想要运行的macros。

因此,链接的单元格包含一个公式,只有当我更改其他单元格时才会更改值。 我遇到的问题是我的macros只运行,如果我改变单元格的值而不是公式的值。 我正在寻找一种方法来激活macros,当公式返回更改的值。

这是我的代码到目前为止:

我的单元格范围被命名为“值”,我想隐藏标签“刷新”

Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Me.Range("Values")) Is Nothing Then Exit Sub Application.EnableEvents = False 'to prevent endless loop Sheet1.Refresh.Visible = False Application.EnableEvents = True End Sub 

对不起再次打开另一个问题,但正如我所说,我不能在其他线程发表评论

谢谢你能够得到的所有帮助

使用这个代码。 它将值存储到工作表上最后一行\列的单元格中。 您需要手动存储一次该值,但之后会在每次更改时将其存储起来,以便在下一次计算工作表时检查(并且可能更改了公式结果)。

 Private Sub Worksheet_Calculate() Dim bOld as Byte bOld = Me.Cells(Me.Rows.Count,Me.Columns.Count) If Me.Range("Values") <> bOld Then Application.EnableEvents = False 'to prevent endless loop Me.Cells(Me.Rows.Count,Me.Columns.Count).Value = Me.Range("Values").Value 'store new value Sheet1.Refresh.Visible = False Application.EnableEvents = True End If End Sub