Zum Hauptinhalt springen

Excel VBA: Invalid ReDim Fehler (falsche Neuzuweisung)

Microsoft Excel ist eines der beliebtesten Werkzeuge für die Arbeit mit Daten. Und obwohl Excel eine riesige Auswahl an Funktionen und Funktionen bietet, stoßen Benutzer manchmal auf Fehler, die ihre Leistung verlangsamen können. Ein solcher Fehler ist Invalid ReDim (falsche Umverteilung).

ReDim ist ein Schlüsselwort in VBA (Visual Basic for Applications), das in Excel zum Schreiben von Makros und zur Automatisierung von Aufgaben verwendet wird. Es wird verwendet, um die Größe von Arrays zu ändern, dh die Anzahl der Elemente in einem Array neu zuzuweisen. Der Fehler Invalid ReDim tritt auf, wenn der Versuch, ein Array neu zuzuordnen, nicht ordnungsgemäß ausgeführt wird.

Der erste Grund für den Fehler Invalid ReDim ist die falsche Verwendung des Schlüsselworts. Wahrscheinlich versucht das Programm, die Größe eines Arrays zu ändern, das nicht deklariert oder fehlerhaft deklariert wurde. Dies kann auf einen Tippfehler im Variablennamen oder eine falsche Angabe der Größe des Arrays zurückzuführen sein.

Der zweite Grund ist die falsche Verwendung des Schlüsselworts ReDim. ReDim kann nur für Arrays verwendet werden, die mit dem Schlüsselwort Dim deklariert sind. Der Versuch, ein nicht massives Objekt neu zuzuweisen, z. B. eine Variable vom Typ Range oder Object, führt zu einem ungültigen ReDim-Fehler.

Was ist ein Invalid ReDim-Fehler

Der Fehler "Invalid ReDim" in der VBA-Programmiersprache (Visual Basic for Applications) tritt auf, wenn der ReDim-Operator zum Neuzuweisen der Array-Größe nicht ordnungsgemäß verwendet wird. Ein Fehler weist darauf hin, dass ein vorhandenes Array nicht neu zugewiesen werden kann, da es nicht existiert oder nicht korrekt definiert ist.

In VBA wird der Operator "ReDim" verwendet, um die Größe eines Arrays während der Programmausführung zu ändern. Es ermöglicht Ihnen, die Anzahl der Elemente in einem Array zu ändern oder die Größe einer seiner Dimensionen zu ändern.

"Invalid ReDim" -Fehler können aus folgenden Gründen auftreten:

1. Adressierung eines nicht vorhandenen Arrays: Wenn Sie versuchen, die Größe eines Arrays neu zuzuordnen, das nicht existiert (dh nicht deklariert wurde) oder falsch deklariert wurde, wird der Fehler "Invalid ReDim" angezeigt. Bevor Sie den "ReDim" -Operator verwenden, müssen Sie sicherstellen, dass das Array vorhanden und korrekt definiert ist.

2. Versuch, die Größe eines mehrdimensionalen Arrays zu ändern: Der Operator "ReDim" kann nur die Größe einer Dimension gleichzeitig ändern. Wenn Sie versuchen, die Größe eines mehrdimensionalen Arrays zu ändern, indem Sie mehrere Dimensionen in einer einzelnen ReDim-Anweisung angeben, wird der Fehler "Invalid ReDim" angezeigt. Um die Größe eines mehrdimensionalen Arrays zu ändern, müssen Sie für jede Dimension separate "ReDim" -Operatoren verwenden.

3. Ein Array nach der Verwendung neu zuordnen: Wenn Sie versuchen, die Größe des Arrays nach der Verwendung im Code neu zuzuordnen, wird der Fehler "Invalid ReDim" angezeigt. Der 'ReDim'-Operator muss verwendet werden, bevor das Array verwendet wird.

"Invalid ReDim" -Fehler in VBA können zu unvorhersehbarem Programmverhalten führen und zum Absturz des Programms führen. Daher ist es notwendig, den Code sorgfältig auf solche Fehler zu überprüfen und zu beheben, bevor Sie das Programm ausführen.

Ursachen des Fehlers

Invalid ReDim-Fehler können aus verschiedenen Gründen auftreten. Die häufigsten sind:

GrundDie Beschreibung
Versuch, die Größe eines Arrays mithilfe des ReDim-Schlüsselworts zu ändernDer Fehler kann auftreten, wenn Sie während der Codeausführung versuchen, die Größe des Arrays mithilfe des ReDim-Schlüsselworts zu ändern. Das ReDim-Schlüsselwort kann jedoch nur zum Erstellen eines neuen Arrays oder zum Ändern der Größe eines vorhandenen Arrays verwendet werden, nicht jedoch zum Ändern der Größe eines bereits deklarierten Arrays.
Festlegen falscher Parameter bei Verwendung von ReDimWenn Sie bei der Verwendung des ReDim-Schlüsselworts falsche Parameter angeben, z. B. eine negative Array-Größe oder einen falschen Index, tritt der Fehler Invalid ReDim auf. Stellen Sie sicher, dass Sie die Größe und Indizes des Arrays korrekt angeben, wenn Sie ReDim verwenden.
Es wird versucht, die Größe eines Arrays zu ändern, das keine Variable istDer Fehler Invalid ReDim kann auftreten, wenn Sie versuchen, die Größe eines Arrays zu ändern, das keine Variable ist. Stellen Sie vor der Verwendung des ReDim-Schlüsselworts sicher, dass das Array eine Variable und keine Konstante oder ein Wert ist, der nicht geändert werden kann.
Falsche Verwendung des Preserve-SchlüsselwortsWenn Sie das Schlüsselwort Preserve beim Neuzuweisen eines Arrays verwenden, aber die falsche Anzahl von Elementen angeben, wird der Fehler Invalid ReDim angezeigt. Stellen Sie sicher, dass Sie die Anzahl der Elemente im Array korrekt angeben, wenn Sie das Preserve-Schlüsselwort verwenden.

Stellen Sie sicher, dass Sie das ReDim-Schlüsselwort korrekt verwenden, die richtigen Parameter angeben und mit variablen Arrays arbeiten, um Invalid ReDim-Fehler zu vermeiden.

Wie behebe ich den Fehler Invalid ReDim

Der Fehler Invalid ReDim in Excel VBA tritt auf, wenn versucht wird, die Dimension eines Arrays mithilfe des ReDim-Operators zu ändern, die neue Größe jedoch falsch angegeben ist oder mit der vorhandenen Arraystruktur nicht kompatibel ist. Befolgen Sie die folgenden Richtlinien, um diesen Fehler zu beheben:

1. Überprüfen Sie, ob die Größe des Arrays korrekt ist

Stellen Sie sicher, dass die neue Array-Größe in der ReDim-Anweisung korrekt angegeben ist. Die Größe des Arrays muss eine ganze Zahl und größer als Null sein. Der folgende Code führt beispielsweise zu einem Fehler:

Dim arr(1 To 5) As VariantReDim arr(1 To 0) ' Ошибка Invalid ReDim

In diesem Beispiel führt der Versuch, die Größe des Arrays auf Null zu ändern, zu einem ungültigen ReDim-Fehler. Verwenden Sie die richtige Größe in der ReDim-Anweisung, um diesen Fehler zu vermeiden.

2. Stellen Sie sicher, dass die neue Array-Größe mit den vorhandenen Daten kompatibel ist

Wenn Sie versuchen, die Größe eines eindimensionalen Arrays zu ändern, stellen Sie sicher, dass die neue Größe nicht kleiner als die vorhandene Array-Größe ist. Zum Beispiel:

Dim arr(1 To 5) As VariantReDim arr(1 To 3) ' Ошибка Invalid ReDim

In diesem Beispiel versuchen Sie, die Größe des arr-Arrays in 3 Elemente zu ändern, während das ursprüngliche Array die Größe von 5 Elementen hat. Dies führt zu einem ungültigen ReDim-Fehler. Stellen Sie sicher, dass die neue Array-Größe mit den vorhandenen Daten kompatibel ist.

3. Verwenden Sie den Preserve-Operator, wenn Sie die Größe eines Arrays ändern

Wenn Sie die Größe eines zweidimensionalen Arrays ändern möchten, stellen Sie sicher, dass Sie die Preserve-Anweisung verwenden, wenn Sie diesen Array-Typ neu zuweisen. Zum Beispiel:

Dim arr(1 To 3, 1 To 3) As VariantReDim Preserve arr(1 To 4, 1 To 3) ' Ошибка Invalid ReDim

In diesem Beispiel führt der Versuch, die Größe eines zweidimensionalen arr-Arrays in 4 Zeilen und 3 Spalten zu ändern, ohne die Preserve-Anweisung zu verwenden, zu einem Invalid ReDim-Fehler. Fügen Sie eine Preserve-Anweisung hinzu, um diesen Fehler zu vermeiden:

ReDim Preserve arr(1 To 4, 1 To 3)

Jetzt können Sie die Größe des Arrays ohne Fehler ändern.

Wenn Sie diese Richtlinien befolgen, beheben Sie den Fehler Invalid ReDim in Excel VBA und können die Größe des Arrays erfolgreich ändern.