Rückkehr in VBA-Code-Beispiele

VBA Datumsformate

Dieses Tutorial zeigt, wie man in VBA Datumsangaben formatiert.

Datumsformate in VBA

Es gibt zwei Methoden, um Datumsangaben mit VBA zu formatieren.

  1. Die NumberFormat-Eigenschaft von Cells / Ranges – Zur Formatierung von in Zellen gespeicherten Daten
  2. Die VBA-Funktion Format – Zur Formatierung von Datumsangaben in VBA (z. B. Variablen)

NumberFormat – Datumsangaben

Das Standard-Zahlenformat einer Zelle in Excel ist Standard. Sie können Werte als Zahlen, Text, Datumsangaben, Prozentsätze oder Währungen anzeigen, indem Sie das Zahlenformat ändern. Die Eigenschaft NumberFormat in VBA wird verwendet, um das Zahlenformat von Daten in einer Zelle oder ganzer Bereiche festzulegen.

Hinweis: Um die verschiedenen in Excel verfügbaren Standard-Datumsformate zu sehen, gehen Sie zu Startseite>Zahl und Sie sehen Optionen wie ‚Datum, kurz‘, ‚Datum, lang‘ und ‚Zeit‘.

vba start zahlen datum

start zahlen datum kurz

Kurzes Datum

Die Formatierungsoption Datum, kurz zeigt das Datum in einem kurzen, numerischen Format an.

Mit dem folgenden Code wird die Eigenschaft .NumberFormat der Zelle A1 auf Datum, kurz gesetzt:

Range("A1").NumberFormat = "dd.mm.yyyy"

Langes Datum

Die Zahlenformatierung Datum, lang zeigt das Datum in einem längeren, schriftlichen Format an. Mit dem folgenden Code wird die Eigenschaft .NumberFormat der Zelle A1 auf Datum, lang gesetzt:

Range("A1").NumberFormat = "dddd, dd. mmmm yyyy"

Benutzerdefinierte Daten

Um die benutzerdefinierten Zahlenformatcodes einzusehen, die Sie in VBA zur Formatierung von Datumsangaben verwenden können, gehen Sie auf Start>Zahl und klicken Sie auf die Schaltfläche zum Einblenden der Zahlenformatierungsoptionen. Wählen Sie die Registerkarte Zahlen und wählen Sie Benutzerdefiniert.

Beachten Sie, dass Sie in VBA das englische y anstelle des deutschen J für die Jahresangabe verwenden müssen. Analog müssen Sie für die Tagesangabe d anstelle von t verwenden.

vba benutzerdefiniert zahlenformate datum

Sie können entweder die benutzerdefinierten integrierten Formate für Ihr Datum auswählen oder Ihre eigenen benutzerdefinierten Datumsformate erstellen. Mit dem folgenden Code wird die Eigenschaft .NumberFormat der Zelle A1 auf ein integriertes benutzerdefiniertes Datumsformat gesetzt:

Range("A1").NumberFormat = "mmm yy"

Das Ergebnis ist:

vba datumsformat benutzerdefiniert kurz

Mit dem folgenden Code wird die Eigenschaft .NumberFormat der Zelle A1 auf ein benutzerdefiniertes Datumsformat gesetzt:

Range("A1").NumberFormat = "dddd, dd. mmm 'yy"

Das Ergebnis ist:

vba datumsformat benutzerdefiniert lang

Anhand der vorgegebenen Beispiele von Excel können Sie das Schema für Zahlenformate nachvollziehen. Weiterführende Informationen zur Formatierung von Datumsangaben finden Sie in der Dokumentation von Microsoft.

VBA Format-Funktion

Wie bereits erwähnt, eignet sich die Methode NumberFormat gut zum Festlegen des Zahlenformats von Datumsangaben in Excel-Zellen.  In VBA können Sie die Format-Funktion verwenden, um Datumsangaben als Zeichenfolgen in ein bestimmtes Datumsformat umzuwandeln.

Für die Formatierung von Datumsangaben verwenden Sie die folgende Syntax:

Format(Zeichenfolge, ZahlenFormatCode) wobei:

Zeichenfolge – die Textzeichenfolge, die das Datum darstellt.

NumberFormatCode – der Zahlenformatcode, der angibt, wie das Datum angezeigt werden soll.

Der folgende Code zeigt, wie eine Textzeichenfolge, die ein Datum darstellen soll, als langes Datumsformat formatiert wird:

vba format funktion code

MsgBox Format("1/1/2010", "dddd, dd. mmmm yyyy")

Das Ergebnis ist:

vba format funktion msgbox

Beachten Sie, dass die Format-Funktion die gleiche Syntax für die Datumsformatierung verwendet wie die obige Funktion NumberFormat.

Der folgende Code zeigt, wie man eine Zeichenketten-Darstellung eines Datums als mittleres Datumsformat (Medium Date) formatiert:

MsgBox Format("09. Oktober 2012", "Medium Date")

Das Ergebnis ist:

format funktion msgbox medium

Der folgende Code zeigt, wie man eine Zeichenketten-Darstellung eines Datums als benutzerdefiniertes Format formatiert:

MsgBox Format("09. Oktober 2012", "dddd: dd.mm.yy")

vba format funktion msgbox benutzerdefiniert

VBA Custom Format Builder

Unser VBA Add-in: AutoMacro enthält einen Custom Format Builder für den VBA-Editor. Damit können Sie benutzerdefinierte Formate festlegen und sofort eine Vorschau der Ausgabe für Ihren gewünschten Wert anzeigen:

vba custom number format

Das VBA-Add-in enthält zahlreiche weitere „Code-Generatoren“, eine umfangreiche Code-Bibliothek und eine Reihe anderer Codierungswerkzeuge.  Es ist das ultimative Add-in für jeden, der sich ernsthaft mit VBA-Programmierung beschäftigt!

VBA Format Date in Access

Die VBA-Funktion Format Date funktioniert in Access VBA genauso wie in Excel VBA.

Function GetDateFilter() As String
'erstelle Zeichenkette, um Info aus 2 Datumsfeldern eines Formulars in Access zu erhalten
   Dim strDatumsfeld As String
   If IsNull(Me.txtSDate) = False Then
      If IsNull(Me.txtEDate) = True Then Me.txtEDate = Me.txtSDate
      If strDatumsfeld2 = "" Then
        GetDateFilter = strDatumsfeld & " Zwischen #" & Format(Me.txtSDate, "dd.mm.yyyy") & "# und # " & Format(Me.txtEDate, "dd.mm.yyyy") & "#"
      End If
   End If
End Function