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

Von: Lorenz Hölscher
Stand: 25. Mai 2011
3.666665
(3)
Anmelden um Kommentare zu schreiben

Sonstige Funktionen

Unfreiwillige Datentyp-Konvertierung

Visual Basic wandelt Variablen automatisch in andere Datentypen um, wenn diese nicht zueinander passen. Das ist aber durchaus kein Vorteil, sondern sorgt für überraschenden Ärger.

Leider (anders kann man das nicht sagen) kümmert sich Visual Basic wenig bis gar nicht um korrekte Datentypen, so dass Sie also Datentyp-Verletzung nicht als Laufzeit- oder besser sogar schon als Kompilier-Fehler gemeldet bekommen. Anweisungen wie im folgenden Code sind nämlich eigentlich unzulässig:

Sub FalscherDatentyp()
    Dim intZahl As Integer
    Dim datDatum As Date
    
    intZahl = "123"			'pfui!
    datDatum = "24.12/2011"	'pfui!
    
    MsgBox intZahl & vbCrLf & datDatum
End Sub

Obwohl Sie der Integer-Variablen eine Zeichenkette zuweisen und der Date-Variablen eine sogar eher merkwürdige Zeichenkette, stoppt nicht schon der Compiler, sondern der Code wird ausgeführt.

Bis dahin noch mag das Argument ja lauten, diese automatische Datentyp-Konvertierung sei doch sehr praktisch. Das wird sich ändern, wenn Ihnen folgendes passiert:

Dim strText As String

Sub DatenTypKorrekt()
    strText = "123" & "456"
    MsgBox strText
End Sub

Sub DatenTypMutig()
    strText = "123" + "456"
    MsgBox strText
End Sub

Sub DatenTypPech()
    strText = "123" + 456
    MsgBox strText
End Sub

In DatenTypKorrekt werden zwei Zeichenketten miteinander verkettet und es gibt das gewünschte Ergebnis "123456" als Zeichenkette. In DatenTypMutig ist statt des richtigen Verkettungsoperators & fälschlicherweise der Additionsoperator + eingesetzt, was meistens funktioniert. Aber eben nur meistens!

Wer nun versehentlich auch noch die Anführungszeichen weglässt, findet als überraschendes Ergebnis nicht mehr "123456", sondern "579"! Die erste Zeichenkette wurde klammheimlich in eine Zahl umgewandelt, beide Zahlen addiert und das Ergebnis wieder in String konvertiert.

Diese Seite ist für Mitglieder von akademie.de reserviert.

Möchten Sie die Mitgliedschaft 14 Tage kostenlos testen und den Beitrag komplett lesen?

Oder möchten Sie zunächst mehr über diesen Beitrag erfahren und die Leseproben sehen?

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