2016-04-13 7 views
0

Ich habe eine Spalte mit Daten, die mit anderen Daten verknüpft sind und ich bin glücklich, wie sie sortiert sind. Also, ohne die Daten in der Excel-Tabelle zu sortieren, muss ich das letzte und das älteste Datum in dieser Spalte finden.So finden Sie das letzte Datum in einer Datumsspalte mit VBA

Ich hatte bisher den folgenden Code, der nicht so hilfreich ist.

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

MsgBox Max_date 

Dank H

+0

Was macht der Code oder ist das nicht korrekt? –

+1

loswerden der '.value' am Ende ist es nicht Teil der Arbeitsblattfunktion –

+0

Es gibt mir einige Zahlen als Ausgabe. Aber die Zahlen haben nichts mit dem Datum zu tun, nach dem ich suche .. Danke Scott. – Zapata

Antwort

1

Remove ".value" aus dem ersten Codezeile.

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

Dies gibt die Zahl zurück, die das Datum in Microsoft Excel Datum-Uhrzeit-Code darstellt.

Um Scott Craners Kommentar wiederzugeben, verwenden Sie Folgendes, um die Datumsformatversion der Nummer anzuzeigen.

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

MsgBox CDate (Max_date) wird es tun. rund 40000.

CDate wandelt diese Zahl zu einem VBA Datumsart

Daten werden als Zahlen in Excel, mit typischen Werten dargestellt.

2

So gibt es ein paar Möglichkeiten, um damit umzugehen:

Zuerst Sie mit ihm zum Zeitpunkt der Ausgabe unter Verwendung CDate() umgehen können:

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

Zweite Sie die erklären können Max_date als Datum und es wird automatisch den Schalter:

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

persönlich bevorzuge ich die zweite, da es nicht nicht Datumswerte erlauben wird, an erster Stelle eingegeben werden.

Verwandte Themen