Die 15 wichtigsten VBA-Funktionen für Zahlen und Datum

Von: Lorenz Hölscher
Stand: 25. Mai 2011
4
(4)
Beitrag bewerten
Anmelden um Kommentare zu schreiben

Zahlen und Datum

Korrekten Datentyp benutzen

Wenn Datumswerte in Zeichenketten gespeichert werden, verbraucht das nicht nur mehr Platz, sondern erhöht das Risiko falscher Auswertungen erheblich.

Bitte versuchen Sie nie, Datumswerte wie Zeichenketten zu behandeln und beispielsweise mit dem folgenden Code den Monat zu extrahieren:

Sub MonatFalschSuchenMitGlueck()
    Dim strWert As String
    
    strWert = "24.12.2011"
    MsgBox "Monat: " & Mid(strWert, 4, 2)
End Sub

Wenn Sie das testen, werden Sie hier das korrekte Ergebnis 12 erhalten. Aber ändern Sie nur einmal das Datum in strWert = "35.13.2011"! Das ist syntaktisch korrekt, aber als Datum natürlich untauglich.

In diesem Fall ist der problematische Teil des Codes nicht die Mid()-Funktion, sondern der ungeeignete String-Datentyp. Dadurch wird das Datum nicht auf Gültigkeit überprüft. Sie werden weiter unten sehen, wie sich das Problem lösen lässt.

Richtig falsch wird das Ergebnis aber, wenn das Datum nicht mehr im vermuteten Format steht:

Sub MonatFalschSuchenMitPech()
    Dim strWert As String
    
    strWert = "1.1.2012"
    MsgBox "Monat: " & Mid(strWert, 4, 2)
End Sub

Hier wird das Ergebnis .2 als angeblicher Monat angezeigt, weil Ihr Code von einer vorgegebenen Formatierung ausgeht, die Sie nur mit vielen, völlig unnötigen Prüfungen ermitteln können.

Das alles können Sie sich ersparen, wenn Sie Datumswerte immer im Date-Datentyp speichern, der ja nebenbei auch für gültige Werte sorgt:

Sub DatumsTest()
    Dim datWert As Date
    
    'ok, Weihnachten 2011:
    datWert = #12/24/2011#
    
    'Syntaxfehler, weil ungültiges Datum:
    datWert = #4/35/2011#
End Sub

Dies ist eine Leseprobe

Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!

Auf VBA: 15 wichtige VBA-Funktionen für Zahlen und Datum erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.

Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein