Excel将单元格中的所有date放在一个范围内

我不知道这是否是正确的地方,但我看到其他人在这里问Excel问题。

我怎样才能让Excel把两个date范围之间的所有月份和年份。

例如我的date范围是2004年3月 – 2008年12月,所以Excel应该返回

March 2004 April 2004 May 2004 ... November 2008 December 2008 

列中的每个单元格应具有两个date之间的所有月份/年份。

谢谢

在Windows Excel 2010中,只需在单元格中input“March 2004”,然后按需要向下拖动即可。 对于我而言,它将格式更改为“Mar-2004”,但您可以使用自定义格式“mmmm yyyy”格式化单元格,以获得上面的确切格式。 要做一个自定义的格式,只需右键单击包含date的单元格…哦,等等,你可以右键单击吗? 因此,获取“格式单元格”对话框,select“数字”选项卡,然后select列表底部的“自定义”,然后在顶部附近的“types”框中键入格式。

还是你想要比这更自动的东西?

Doug的解决scheme无疑是获得一个月的最简单的方法。 但是,如果你想要一个VBA解决scheme,下面是一个。 你不会说你为什么不能自己编写这样的程序。 我决定编写例程比写你不知道的更容易。 问你是否不明白这个代码在做什么。

 Option Explicit Sub TestDataRange() Call OutputDateRange("Sheet1", 2, 2, DateValue("1 Mar 2004"), _ DateValue("1 Apr 2008")) End Sub Sub OutputDateRange(ByVal WShtName As String, ByVal RowTop As Long, _ ByVal Col As Long, ByVal DateFirst As Date, _ ByVal DateLast As Date) Dim DateCrnt As Date DateCrnt = DateFirst With Sheets(WShtName) Do While True With .Cells(RowTop, Col) .Value = DateCrnt .NumberFormat = "mmmm yyyy" End With DateCrnt = DateAdd("m", 1, DateCrnt) If DateCrnt > DateLast Then Exit Do End If RowTop = RowTop + 1 Loop End With End Sub