Перемещение 2 клеток вниз в цикле - PullRequest
0 голосов
/ 24 января 2019

Перемещение нескольких ячеек вниз по строкам в цикле

Я очень новичок в VBA и пытаюсь учиться сам.У меня есть 4 колонки, с которыми я работаю.«I» - начальная дата, «J» - конечная дата, «M» - ежедневные расходы и «N» - недельные расходы.

Сейчас я могу сказать, что если текущая дата больше начальной и меньше конечной, умножьте «M» на 7. Это работает для одной строки.Проблема в том, что я не могу отключить все столбцы.Это означает, что начальная дата - это активная ячейка, которую я могу сместить.Я также не могу получить ежедневную компенсацию.Я перепробовал все, что умею делать, и просмотрел множество разных форумов, но не могу заставить его работать.Я уверен, что это очень просто, но любая помощь будет оценена.

Sub WeeklyAdvertisingSpend()

Dim dspend As Currency
Dim wspend As Currency


dspend = Worksheets("2018 Information").Range("m3")

wspend = dspend * 7

Range("i3").Activate

Do Until ActiveCell = Empty
    ActiveCell.Offset(1, 0).Activate


        If Range("i3") <= Date And Range("j3") >= Date Then

        Range("n3").Value = wspend

        End If



Loop



End Sub

Используйте оператор if then, чтобы найти еженедельные расходы на различные рекламные кампании.

1 Ответ

0 голосов
/ 24 января 2019

Вы можете сделать это так, без смещений, но с помощью счетчика строк. Цикл начинается в строке 3 и заканчивается последней использованной записью в столбце I (строка n).

Sub WeeklyAdvertisingSpend()

Dim dspend As Currency
Dim wspend As Currency
Dim n As Long, r As Long

With Worksheets("2018 Information")
    n = .Range("I" & .Rows.Count).End(xlUp).Row
    For r = 3 To n
        If .Cells(r, "I") <= Date And .Cells(r, "J") >= Date Then
            .Cells(r, "N") = .Cells(r, "M") * 7
        End If
    Next r
End With

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