VBA - умножить столбцы - PullRequest
       1

VBA - умножить столбцы

0 голосов
/ 06 декабря 2018

Я запускаю небольшой VBA для циклического перебора ряда строк (27 - 52), чтобы вернуть простое умножение столбца DX столбца E на столбец F.

Мой код ниже приводит к сбою Excel.Может кто-нибудь указать очевидное, где я иду не так.Я явно не эксперт!

Private Sub Worksheet_Change(ByVal Target As Range)

For i = 27 To 52

  Cells(i, 6) = Cells(i, 4) * Cells(i, 5)

Next i

End Sub

Спасибо

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Excel будет аварийно завершать работу, поскольку ваш код создает бесконечный цикл из-за события изменения, которое вы используете.Каждый раз, когда ваш код умножает две заданные ячейки, он идентифицируется как событие изменения, поэтому ваш код будет срабатывать снова и снова ...

Вы можете использовать скорректированный код, который опубликовал Михал, или выможете настроить свой оригинальный код:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    For i = 27 To 52
        Cells(i, 6) = Cells(i, 4) * Cells(i, 5)
    Next i
    Application.EnableEvents = True
End Sub

Надеюсь, это поможет!

0 голосов
/ 06 декабря 2018

Я не вижу, как это "вылетит" в Excel, тем не менее, вам не нужно Change(ByVal Target As Range), так что это просто:

Private Sub foo()

    For i = 27 To 52

      Cells(i, 6).Value = Cells(i, 4).Value * Cells(i, 5).Value

    Next i

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