Вызов макроса на основе изменения значения ячейки, но формула остается прежней - PullRequest
0 голосов
/ 03 февраля 2019

Мне нужно вызывать макрос при изменении ячейки B3, однако B3 является ссылкой RTD, поэтому при изменении значения формула остается прежней, и Excel не распознает это изменение.Как я могу заставить мой макрос работать, когда значение изменяется, а формула не меняется?

Я пытался использовать простой диапазон («B3»). Значение, но это дает мне ошибку времени выполнения »424" .Затем я попытался создать объект диапазона, чтобы обойти это, но все равно получил другое сообщение об ошибке.

Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("B3")) Is Nothing Then
    Call Copy_Values
    End If
End Sub

Я относительно новичок в VBA, поэтому я знаю, что могу упустить что-то очевидное, спасибо за любую помощь, вы можетепредоставить

1 Ответ

0 голосов
/ 03 февраля 2019

Вы хотите, чтобы Worksheet_Calculate не Worksheet_Change.Используйте статическую переменную, чтобы «запомнить» значение из последнего цикла расчета.

Sub Worksheet_Calculate()

    static beeThree as variant

    If Range("B3").value2 <> beeThree Then
        application.enableevents = false
        application.calculation = xlcalculationmanual
        Copy_Values
        beeThree = Range("B3").value2
        application.calculation = xlcalculationautomatic
        application.enableevents = true
    End If

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