Так что в настоящее время я использую классический макрос запуска, если ячейка изменяет значение:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("O1"), Range(Target.Address)) Is Nothing Then
Call Macro A
End if
End Sub
Теперь я хочу расширить макрос, чтобы он проверял каждую ячейку в диапазоне Range("O1:O40")
и запускал другой макрос в зависимости от того, какая ячейка изменяет значение.
Различные макросы могут быть помещены в цикл, поскольку код по существу:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("O1"), Range(Target.Address)) Is Nothing Then
Worksheets("Data").Range("N1").Value = Worksheets("Input").Range("O1").Value
ElseIf Not Application.Intersect(Range("O2"), Range(Target.Address)) Is Nothing Then
Worksheets("Data").Range("N2").Value = Worksheets("Input").Range("O2").Value
End if
End Sub
, поэтому, если Worksheets("Input").Range("O1")
изменяет значение, значение должно быть скопировано в Worksheets("Data").Range("N1")
и т. Д. Для всех ячеек в диапазоне "O1:O40"