如何获得特定月份的date

我在一个excelmacros中工作。 我需要生成属于某个特定月份的所有date。 谁能说如何实现这一目标?

更新:我想收到它作为一个数组数组。 我试图使用名称空间“系统”下的date相关的function。 但是,它显示错误为“未find对象或方法”。 所以,我正在使用Issan的想法(见下文)。 但是,我收到错误为“对象不支持此属性或方法”。

编辑: “对象不支持此属性或方法”错误后,我宣布一个variables为Date。 我认为VBA中的可用对象取决于声明的variables。 谢谢大家。

(假设你说的是VBA,因为你说你正在使用Excelmacros)

以下是如何在特定的月份中为每天生成一组date(没有足够的信息来build议你想要什么格式,所以我假定一个date数组)。

 Sub GenerateDates() Dim Days() As Date Dim DaysInMonth As Long, i As Long Dim Year As Long, Month As Long ' Example: Feb, 2006 (leap year) Year = 1996 Month = 2 DaysInMonth = DateSerial(Year, Month + 1, 1) - _ DateSerial(Year, Month, 1) ReDim Days(1 To DaysInMonth) For i = 1 To DaysInMonth Days(i) = DateSerial(Year, Month, i) Next 'Do as you wish with the array of 29 days End Sub 

工作原理:可以使用上面的dateserialmath计算一个月内的天数。 这将确保您获得适当的天数,甚至考虑闰年。 然后你只需要重新排列你的数组并填充数组!

如果你想使用VBA,那么Issun的答案是处理这个问题的最好方法。

然而,这可能是一个更大的问题的一部分,从你的问题,我们不能看到你想要达到什么。

不要忘记,您也可以使用Excel电子表格来帮助您构build一个完整的应用程序。

例如,可以使用公式 =EOMONTH(NOW(),0)获取当前月份的最后一天。 或在任何其他date按照你想要的方式进行调整。
注意:不要忘记检查Analysis ToolPak Add-in以便EOMONTH公式存在。

[编辑]你可以在这篇博客的文章中find更多关于EOMONTH 的信息