Игнорирование проблемы с событием изменения (это, кажется, другой вопрос, и поиск на этом сайте даст вам ответы на ваши вопросы).Вам нужно взглянуть на паттерны вашей логики.
Предполагая, что D25
может быть только целым числом от 2 до 22 включительно, попробуйте:
Dim i as long
For i = 2 to Range("D25").Value
Range("D" & i + 1).Value = Range("D" & i).Value + 1
Next i
Тем не менее, как @W-hit сказал, что было бы полезно узнать, чего вы пытаетесь достичь, поскольку мы вполне можем столкнуться с проблемой XY здесь