изменение значения ячейки таблицы для цикла ячеек - PullRequest
0 голосов
/ 16 ноября 2018

Так что в настоящее время я использую классический макрос запуска, если ячейка изменяет значение:

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"

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете пройти через диапазон, используя For Each Loop

Dim cell As Range
For Each cell In Range("O1:O40")
    If Not Application.Intersect(cell, Range(Target.Address)) Is Nothing Then
        Worksheets("Data").Range("N" & cell.row).Value2 = cell.Value2
    End If
Next cell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...