Добавьте значение во все ячейки столбца к соответствующей ячейке в другом столбце, а затем очистите исходные ячейки. - PullRequest
1 голос
/ 29 апреля 2019

Мне нужно создать документ Excel с обновлением итогов в столбце A на основе чисел, введенных в столбце B. Каждая соответствующая ячейка в строке A должна обновляться на основе своего эквивалентного значения ячейки B всякий раз, когда добавляется новое значение, и затем значение, введенное в B, очищается после добавления к A.

У меня все работает на одну строку, но я не знаю и не понимаю, как лучше всего это сделать для КАЖДОЙ пары ячеек во всем столбце. Я действительно не хочу копировать и вставлять это 10000 раз и обновлять ячейки, чтобы они указывали на правильную пару. Код для одной ячейки:

Private bIgnoreEvent As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
    If bIgnoreEvent Then Exit Sub
    bIgnoreEvent = True
    Cells(1, 2) = Cells(1, 2) + Cells(1, 1)
    Cells(1, 1) = ""
    bIgnoreEvent = False
End Sub

Я надеюсь, что этого можно достичь с помощью функции цикла или некоторого диапазона.

1 Ответ

0 голосов
/ 29 апреля 2019

Это должно работать:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, c As Range

    'any updates in ColB?
    Set rng = Application.Intersect(Target, Me.Columns(2))

    If Not rng Is Nothing Then
        Application.EnableEvents = False '<< prevent re-triggering of event
        'Process each updated cell
        For Each c In rng
            If IsNumeric(c.Value) Then
                With c.Offset(0, -1)
                    .Value = .Value + c.Value
                End With
                c.ClearContents
            End If
        Next c
        Application.EnableEvents = True  '<< re-enable event
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...