2016-04-13 314 views
0

我有一列鏈接到其他數據的日期列,我很滿意他們如何排序。因此,如果不在Excel表格中對數據進行排序,我需要查找該列中最新和最舊的日期。如何使用VBA查找日期列中的最近日期

到目前爲止,我已經有了以下代碼,這些代碼沒有那麼有用。

Max_date = Application.WorksheetFunction.Max(Columns("X")).Value 

MsgBox Max_date 

感謝 h,從您的第一行代碼

+0

那麼這段代碼做或不做的是不正確的? –

+1

擺脫'.value'在最後它不是工作表函數的一部分 –

+0

它給了我一些數字作爲輸出。但是這些數字與我尋找的日期無關。謝謝Scott。 – Zapata

回答

1

刪除 「.value的」。

Max_date = Application.WorksheetFunction.Max(Columns("X")) 
MsgBox Max_date 

這將返回表示日期在Microsoft Excel日期時間代碼中的數字。

要回應Scott Craner的評論,請使用以下內容顯示數字的日期格式版本。

Max_date = Application.WorksheetFunction.Max(Columns("X")) 
MsgBox cDate(Max_date) 
1

MsgBox CDate(Max_date)會做到這一點。

日期被表示爲在Excel中的數字,與典型值周圍40000

CDATE該號碼轉換爲VBA日期類型。

2

因此,有幾種方法來處理這個:

首先,你可以在輸出時處理它通過使用CDATE():

Max_date = Application.WorksheetFunction.Max(Columns("X")) 
MsgBox CDate(Max_date) 

秒你可以聲明MAX_DATE作爲一個日期,它會自動進行切換:

Dim Max_date as Date 
Max_date = Application.WorksheetFunction.Max(Columns("X")) 
MsgBox Max_date 

個人而言,我更喜歡第二個,因爲它不會允許首先要輸入非日期值。