Если вы хотите распечатать даты между двумя датами в excel, то мое предложение - попробовать попробовать под кодом.
Sub DateFill()
Dim Start_Date As Date
Dim End_Date As Date
Dim Number_Of_Days As Integer
Start_Date = InputBox(prompt:="Enter the Start Date", Title:="Date Print", Default:="3/1/2013")
End_Date = InputBox(prompt:="Enter the End Date", Title:="Date Print", Default:="3/23/2013")
Range("A1").Value = Start_Date
'Range("B1").Value = End_Date
Range("A1").Select
Number_Of_Days = DateDiff("d", Start_Date, End_Date) ' Return Day
Number_Of_Days = Number_Of_Days + 1
'Range("C1").Formula = "=DATEDIF(A1, B1, ""D"") "
Selection.AutoFill Destination:=Range("A1:A" & Number_Of_Days), Type:=xlFillDefault
Range("A1:A" & Number_Of_Days).Select
End Sub
Здесь вы избегаете использования Loop, который сохраняет время выполнения.
ли функция предназначена для возвращения массива в типе варианта вар в VBA или вы пытаетесь вернуть его рабочий лист для дополнительной обработки собственных функций? – Jeeped
В зависимости от использования и требования вы можете добиться того же, используя фильтры в Excel. – CustomX
Мне нужно получить коллекцию со всеми датами, так как я буду использовать ее в другой функции vba. – user2443476