Как обновить ячейку на основе инициируемого события, используя формулу? - PullRequest
0 голосов
/ 25 апреля 2018

Моя конечная цель состоит в том, чтобы обновлять запрос A2 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

Пожалуйста, помогите! Я могу получить окна сообщений для заполнения при изменении значения, но не могу обновить ячейку B2, если A2> B2.

Спасибо

PP

View of excel sheet with data populating A2

1 Ответ

0 голосов
/ 25 апреля 2018

Попробуйте заменить ваш код этим


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...