如何使用公式基于触发事件更新单元格?

时间:2018-04-25 19:01:59

标签: excel vba excel-vba powerquery

我的最终目标是每分钟刷新一次Power SQL查询。 在A2中进行每次更新后,宏应该将A2中的值与B2中的值进行比较。

IF A2 > B2 Then B2 = A2 Else B2 = B2

这是我试图蹒跚学步的内容......大多数SO文章都展示了如何显示消息框,但我需要一个单元格来更新。

Private Sub Worksheet_Calculate()

    Application.EnableEvents = False

    ActiveSheet.Calculate
    DoEvents

    With Range("B2")
        .Value = .Value
        DoEvents
    End With

    Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$2" And Range("A2").Value > Range("B2").Value Then
        Range("B2").Value = Range("A2").Value
    End If

End Sub

请帮忙!我能够在值改变时获取消息框以填充,但是如果A2> 1,则不能使小区B2更新。 B2。

谢谢,

PP

View of excel sheet with data populating A2

1 个答案:

答案 0 :(得分:0)

尝试使用此

替换您的代码
Option Explicit

Private Sub Worksheet_Calculate()
    Me.Range("B2").Value2 = Me.Range("B2").Value2
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Val(Me.Range("A2")) > Val(Me.Range("B2")) Then
        Application.EnableEvents = False
        Me.Range("B2") = Me.Range("A2")
        Application.EnableEvents = True
    End If
End Sub

要放置断点,请单击左侧的灰色条,如下图所示

PlaceABreakPoint