我有一列鏈接到其他數據的日期列,我很滿意他們如何排序。因此,如果不在Excel表格中對數據進行排序,我需要查找該列中最新和最舊的日期。如何使用VBA查找日期列中的最近日期
到目前爲止,我已經有了以下代碼,這些代碼沒有那麼有用。
Max_date = Application.WorksheetFunction.Max(Columns("X")).Value
MsgBox Max_date
感謝 h,從您的第一行代碼
我有一列鏈接到其他數據的日期列,我很滿意他們如何排序。因此,如果不在Excel表格中對數據進行排序,我需要查找該列中最新和最舊的日期。如何使用VBA查找日期列中的最近日期
到目前爲止,我已經有了以下代碼,這些代碼沒有那麼有用。
Max_date = Application.WorksheetFunction.Max(Columns("X")).Value
MsgBox Max_date
感謝 h,從您的第一行代碼
刪除 「.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)
MsgBox CDate(Max_date)會做到這一點。
日期被表示爲在Excel中的數字,與典型值周圍40000
CDATE該號碼轉換爲VBA日期類型。
因此,有幾種方法來處理這個:
首先,你可以在輸出時處理它通過使用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
個人而言,我更喜歡第二個,因爲它不會允許首先要輸入非日期值。
那麼這段代碼做或不做的是不正確的? –
擺脫'.value'在最後它不是工作表函數的一部分 –
它給了我一些數字作爲輸出。但是這些數字與我尋找的日期無關。謝謝Scott。 – Zapata