Циклы VBA для замены многоблочных операторов if - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть лист Excel с повторяющимся оператором If в VBA в Worksheet_Change sub

If Range("D5") = Range("D4") Then
   Range("c5") = DateAdd("w", Range("i4"), Range("c4"))
Else
   Range("c5") = Range(c2")
End If    
If Range("D6") = Range("D5") Then
   Range("c6") = DateAdd("w", Range("i5"), Range("c5"))
Else
   Range("c6") = Range(c2")
End If

, он будет повторяться от D5 до D150. Мой вопрос: могу ли я переписать это?в цикле вместо того, чтобы повторять оператор if 145 раз?

Не очень хорошо, когда дело доходит до циклов

Спасибо

1 Ответ

4 голосов
/ 25 сентября 2019

Попробуйте этот For цикл:

For i = 5 To 150
    If Range("D" & i) = Range("D" & (i-1)) Then
       Range("C"& i) = DateAdd("w", Range("I" & (i-1)), Range("C" & (i-1)))
    Else
       Range("C" & i) = Range("C2")
    End If
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...