Проверка кода VBA с перепрошивкой

Внизу кода мигает ячейка при изменении значения. Это сохраняет ценность оригинала cell b и сохраняет это и сравнивает. Однако если значение ячейки основано на другой ячейке или на основе формулы, этот код не работает.

PrivateSub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B1:B27")

IfNot Application.Intersect(KeyCells, Range(Target.Address)) _
IsNothingThen
If Target.Value > Cells(Target.Row,5).Value Then
'flash green
Target.Interior.ColorIndex =10
Pause 0.5
Target.Interior.ColorIndex =2
Pause 0.5
Target.Interior.ColorIndex =10
ElseIf Target.Value < Cells(Target.Row,5).Value Then
'flash red
Target.Interior.ColorIndex =3
Pause 0.5
Target.Interior.ColorIndex =2
Pause 0.5
Target.Interior.ColorIndex =3
EndIf
Cells(Target.Row,5).Value = Target.Value
EndIf
EndSub

'Pauses execution without holding up main UI thread
PublicFunction Pause(NumberOfSeconds AsVariant)
OnErrorGoTo Error_GoTo
Dim PauseTime AsVariant
Dim Start AsVariant

PauseTime = NumberOfSeconds
Start = Timer
DoWhile Timer < Start + PauseTime
DoEvents
Loop

Exit_GoTo:
OnErrorGoTo0
ExitFunction
Error_GoTo:
Debug.Print Err.Number, Err.Description, Erl
GoTo Exit_GoTo
EndFunction

0 ответов

Другие вопросы по тегам