我正在编写一个月度报表宏,它需要我从一个范围中提取天数和月份数,并获得最大天数(例如1,5,7,9)以进行下一步。我有一个代码,似乎不是一个理想的解决方案。
例如,我从范围A1:A4中提取日期,尽管在编写真实的代码时,日期是从A1到最后一行。
A1= 2022年12月10日A2= 2020年14月6日A3= 2020年3月3日A4= 2021年1月4日
请注意,Excel范围中的日期惯例是英国惯例(dd/mm/yyyy)。同样,我也需要提取月份,但如果我可以获得天的代码,那么也可以获得月份的代码。*
Sub TestR1()
Dim MonthArray(1 To 4) As Variant
Dim x As Double
Dim i As Byte
Dim Rng As Range
Dim ExDate As Date
Dim Mx As Long
Set Rng = Range("A1:A4")
For i = 1 To 4
Set Rng = Range("A" & i)
ExDate = VBA.CDate(Range("A" & i).Value)
x = VBA.Day(ExDate)
MonthArray(i) = x
Next i
Mx = Excel.WorksheetFunction.Max(MonthArray)
End Sub
2条答案
按热度按时间nxagd54h1#
这段代码和你的解释非常混乱。我认为你试图为每一行获取一个月和日的数组,但你的代码是:
1.从单个单元格阅读日期,而不是一行四个单元格。
1.提取该单个日期的日部分;
1.将日期值插入一个名为MonthArray的数组。
如果我没理解错的话,我会这么做:
omhiaaxx2#
浸提天数和月数
立即窗口中的结果(
Ctrl+G
)