我正在嘗試列出兩個給定月份之間的日期:a)2021 年 1 月 1 日;b) 2021 年 6 月 1 日的格式:01.2021; 02.2021; 03.2021; 04.2021; 05.2021; 06.2021
我能夠找到并使用這個 UDF:
Function MONTHRANGE(startDate As Date, endDate As Date, _
Optional Delim As String = "; ", _
Optional dFormat As String = "MM.YYYY") As String
MONTHRANGE = Join(Evaluate("TRANSPOSE(TEXT(ROW(" & CLng(startDate) & ":" & CLng(endDate) & ")," & Chr(34) & dFormat & Chr(34) & "))"), Delim)
End Function
其輸出是以我想要的格式重復日期(每月的每一天) - 我怎樣才能只回傳唯一值(一個 - 每月)?
uj5u.com熱心網友回復:
像下面這樣的東西可以完成作業:
Option Explicit
Private Sub Test()
Debug.Print GetMonths(CDate("1/1/2021"), CDate("6/1/2021"))
End Sub
Private Function GetMonths(ByVal StartDate As Date, ByVal EndDate As Date) As String
Do While StartDate <= EndDate
GetMonths = GetMonths & Format(Month(StartDate), "00") & "." & Year(StartDate) & "; "
StartDate = DateAdd("m", 1, StartDate)
Loop
GetMonths = Left(GetMonths, Len(GetMonths) - 2)
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/451397.html
上一篇:呼叫具有2個變數的函式
下一篇:計算列中的連續數字
