Pokud jsem to pochopil, data jsou doplňována postupně, den za dnem. Pokud není otevřen soubor 3 dny, chce se doplnit poslední 3 chybějící data.
Tedy zjistím poslední vyplněné datum (fce MAX), počet chybějících hodnot (zjištěné MAX - včera) a ty doplním.
Není tady třeba žádného cyklu a už vůbec selectu.
Sub subWriteMissingDates()
With ThisWorkbook.Sheets("List1")
If IsEmpty(.Cells(1)) Then
.Cells(1).Value = Date - 1
Else
Dim dMax As Date
dMax = Application.WorksheetFunction.Max(.Columns(1))
If dMax < (Date - 1) Then
Dim iMissingValuesCount As Integer
iMissingValuesCount = (Date - 1) - dMax
With .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(iMissingValuesCount, 1)
.Value = Application.Evaluate(CLng(dMax) & "+(ROW(1:" & iMissingValuesCount & "))")
.NumberFormat = "d.m.yyyy"
End With '.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(iMissingValuesCount, 1)
End If
End If
End With 'ThisWorkbook.Sheets("List1")
End Subcitovat