Wenn Sie jemals Makros programmiert haben, sind Sie wahrscheinlich damit vertraut, wie Sie Variablen mit dem Schlüsselwort Dim definieren. Beispielsweise können Sie eine Ganzzahlvariable mit dem Namen MyVar wie folgt definieren:

Dim MyVar As Integer

Dies ist sehr einfach und funktioniert gut in Ihrem Code. Um einige Zeilen in Ihrem Code zu speichern, könnten Sie versucht sein, mehrere Variablen pro Zeile zu definieren:

Dim x, y, z As Integer

In einigen Versionen der BASIC-Sprache werden drei Variablen definiert und initialisiert, die jeweils als Ganzzahl vorliegen. In VBA scheint es auch richtig zu laufen, und es wird kein Fehler generiert. Es gibt jedoch ein kleines Problem: Nur die letzte Variable (z) ist tatsächlich als Ganzzahl definiert.

Sie können sehen, wie dies funktioniert, indem Sie den folgenden Code verwenden:

Sub DimTest()

Dim x, y, z As Integer     Dim sTemp As String

sTemp = "x is type " & VarType(x) & vbCrLf     sTemp = sTemp & "y is type " & VarType(y) & vbCrLf     sTemp = sTemp & "z is type " & VarType(z)



MsgBox sTemp End Sub

Wenn Sie das Makro ausführen, zeigt das Meldungsfeld an, dass der Variablentyp für x und y 0 ist. Dies bedeutet, dass die Variable eine Variante ist (der Standarddatentyp für nicht deklarierte Variablen). Nur das letzte Meldungsfeld (für z)

zeigt einen Variablentyp von 2, was eine Ganzzahl bedeutet.

Die Lösung besteht darin, sicherzustellen, dass Sie Ihre Variablen als eine pro Zeile deklarieren oder die vollständige Syntax für jede Variable wie folgt verwenden:

Dim x As Integer, y As Integer, z As Integer

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (3113) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: