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
.