Вот как это можно сделать, это предполагает, что все ваши значения уже есть, и вы используете чек, а не кто-то, набрав живое, в этом случае Джон будет хорошим способом. Однако одна вещь, которая мне не нравится в workheet_change, заключается в том, что после выполнения макроса вы не можете отменить отмену. Я добавил, если длина> 0, как будто у вас две пустые ячейки, они все равно будут срабатывать.
Sub TestValues()
'Define variables
Dim rng As Range
Dim cell As Range
'Set variables
Set rng = Range("A1:A10")
'Begin
For Each cell In rng
If Len(cell) > 0 Then
If cell.Value = cell.Offset(0, 1).Value Then
'Run macro
End If
End If
Next cell
End Sub
* Редактировать - Я думаю, что я точно не читал его правильно. По какой-то причине я думал, что у вас есть ряд ценностей, которые нужно пройти. Для того, чтобы делать то, что вы просили, было бы больше, как это, извините за длинный пост ...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 0 Then
If Target.Value = Target.Offset(0, 1).Value Then
'Run macro
End If
End If
End If
End Sub
Такого рода вещи обычно делается путем написания обработчика событий для 'Worksheet_Change' события. В Интернете легко найти различные примеры. –