我不知道這是否是提問的正確位置,但我在此處看到其他人詢問Excel問題。Excel將單元格中的所有日期放在一個範圍內
我怎樣才能讓Excel把兩個日期範圍之間的所有月份和年份。
例如像我的日期範圍爲2004年3月 - 2008年12月,這樣的Excel應該返回
March 2004
April 2004
May 2004
...
November 2008
December 2008
每個單元在一列應該有兩個日期之間的所有的月/年。
感謝
我不知道這是否是提問的正確位置,但我在此處看到其他人詢問Excel問題。Excel將單元格中的所有日期放在一個範圍內
我怎樣才能讓Excel把兩個日期範圍之間的所有月份和年份。
例如像我的日期範圍爲2004年3月 - 2008年12月,這樣的Excel應該返回
March 2004
April 2004
May 2004
...
November 2008
December 2008
每個單元在一列應該有兩個日期之間的所有的月/年。
感謝
在Windows Excel 2010中,你可以只輸入「2004年3月」進入細胞並且根據需要儘量拖垮,它將按月遞增。對我而言,它將格式更改爲「Mar-2004」,但您可以使用自定義格式「mmmm yyyy」格式化單元格以獲得上述確切格式。要執行自定義格式,只需右鍵單擊包含日期的單元格......哦,等等,您可以右鍵單擊嗎?因此,獲取Format Cells對話框,選擇Number選項卡,然後選擇列表底部的Custom,然後在頂部附近的「Type」框中輸入格式。
還是你想要比這更自動的東西?
Doug的解決方案無疑是獲得一列數月的最簡單方法。但是,如果你想要一個VBA解決方案,下面有一個。你不會說你爲什麼不能自己編寫這樣的程序。我決定編寫例程比寫你不知道的更容易。問你是否不明白這段代碼在做什麼。
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
我只在Mac上完成VBA,它只是一個測試,看看如何輕鬆地移植代碼。很多東西都起作用,有些需要擺弄。 – 2012-02-27 00:02:58
對不起,但我不明白對Mac的引用。 – 2012-02-27 00:27:27
因爲問題標記爲Excel 2011. – 2012-02-27 01:22:29