В этом случае цикл через диапазон немного быстрее.Я предполагаю, что ваши данные включены Sheet1
, ваша Дата документа включена Column A
и Начальное депонирование включено Column B
.
Наконец, вам нужно определить, хотите ли вы, чтобы эти 7 дней включали выходные или нет.Я оставил вам решение для обоих.Вам нужно будет удалить один из операторов действия (в середине цикла)
Option Explicit
Sub BetterCallSaul()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LRow As Long, iRange As Range, iCell As Range
LRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set iRange = ws.Range("B2:B" & LRow)
Application.ScreenUpdating = False
For Each iCell In iRange
If iCell = "" Then
iCell = iCell.Offset(, -1) + 7 'Includes Weekends
iCell = WorksheetFunction.WorkDay(iCell.Offset(, -1), 7) 'Excludes Weekends
End If
Next iCell
Application.ScreenUpdating = True
End Sub