У меня есть проверка данных в виде списка для некоторых ячеек (возможные значения: «Зарегистрировано», «Список ожидания», «Отменено»).Мне нужно выполнить некоторый код, если значение этих ячеек изменяется, только если новое значение не совпадает с существующим.Вопрос в том, как заставить Excel сравнить предыдущее значение ячейки с текущим.
Я попробовал это решение ( Как получить старое значение измененной ячейки в Excel VBA? ), но оно не сработало.Что мне не хватает?Вот пример кода.В настоящее время он изменяет цвета ячеек, даже если я ввожу то же значение.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim previous_value As String
previous_value = oval
Select Case Target.Value
Case Is = "enrolled"
If previous_value = Target.Value Then
MsgBox "you entered the same value"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Else
Target.Interior.Color = vbBlue
End If
Case Is = "waitlisted"
' (....etc.)
End Select
End Sub
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oval As String
If Selection.Cells.Count = 1 Then
oval = Target.Value
End If
End Sub