2016-04-13 13 views
0

他のデータにリンクされている日付の列があり、並べ替えの方法に満足しています。したがって、Excelシートのデータを並べ替えることなく、その列に最も新しい日付と最も古い日付を見つける必要があります。VBAを使用して日付の列で最新の日付を見つける方法

これまでは次のコードがありましたが、これは役に立たないと思います。

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

MsgBox Max_date 

おかげで、コードのあなたの最初の行から H

+0

このコードは何をしているのですか、それとも間違っていませんか? –

+1

最後に '.value'を取り除くと、それはワークシート関数の一部ではありません –

+0

出力としていくつかの数字が返されます。しかし、数字は私が探している日付とは関係ありません..スコットに感謝します。 – 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)となります。

日付はCDate関数はVBA日付型にその番号を変換40000

周りに典型的な値で、Excelの数値として表されています。

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 

は個人的に私はそれが非日付値が最初の場所で入力することを許可しませんように、第2のを好みます。

関連する問題