VBA остановить расчет ячеек

очень новый для VBA в Excel, попросил сделать некоторую проверку на изменение ячейки и немного застрял.

Итак, пользователю нужно ввести денежное значение в ячейку, скажем, D16, поэтому я подумал, что подключусь к событию _Change на листе, который работает довольно хорошо.

однако мне нужна остальная часть листа, чтобы не завершить расчет, когда запись была отправлена в D16, в основном, когда 500000 вводится, другие ячейки обновляются со значениями из другого рабочий лист.

код

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target = Range("D16") Then

       Dim numeric
       numeric = IsNumeric(Target)


       If numeric = False Then

          MsgBox "error"
          Exit Sub

          /// this is where I need to "stop" the calculations from firing

       End If

    End If

End Sub

2 ответов


Я надеюсь, что ниже код поможет. Вам нужно вставить это в раздел кода листа.

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error Resume Next

    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual

    Dim rng As Range
    Set rng = Range("D16")

    If Not Intersect(Target, rng) Is Nothing And IsNumeric(Target) Then

        If Target.Value >= 500000 Then
            MsgBox "Value is greater than 500000"
        End If


    End If


    Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
End Sub

использовать Application.Calculation = xlCalculationManual.

Не забудьте снова включить его:Application.Calculation = xlCalculationAutomatic.