ReDim-Anweisung

Deklariert Variablen für dynamische Arrays und weist Speicherplatz auf Prozedurebene zu oder neu zu.

Syntax

ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

Argumente:

  • Preserve: Behält die Daten in einem vorhandenen Array bei, wenn Sie die Größe der letzten Dimension ändern.

  • Varname: Der Name der Variable. Er folgt den Standardkonventionen zur Benennung von Variablen.

  • Subscripts: Dimensionen einer Arrayvariable.

Anmerkungen

Mit der ReDim-Anweisung wird die Größe eines dynamischen Arrays festgelegt oder geändert, das bereits formell mit einer Private-, Public- oder Dim-Anweisung mit leeren Klammern (ohne Dimensionsindizes) deklariert wurde. Sie können die ReDim-Anweisung wiederholt verwenden, um die Anzahl der Elemente und Dimensionen in einem Array zu ändern.

Wenn Sie das Schlüsselwort "Preserve" verwenden, können Sie nur die Größe der letzten Arraydimension ändern und nicht die Anzahl der Dimensionen. Beispiel: Wenn Ihr Array nur eine Dimension enthält, können Sie die Größe dieser Dimension ändern, da es sich um die letzte und einzige Dimension handelt. Wenn Ihr Array jedoch zwei oder mehr Dimensionen aufweist, können Sie nur die Größe der letzten Dimension ändern und den Inhalt des Arrays beibehalten.

Das folgende Beispiel zeigt, wie Sie die Größe der letzten Dimension eines dynamischen Arrays erhöhen können, ohne vorhandene Daten im Array zu löschen.

Beispiel 1: Einfache Verwendung von ReDim (ohne "Preserve")

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements
ReDim arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
'If you try to access indexes 0, 1, 2 there will be no values.
' The previous values are lost because we did not use Preserve
arr(3) = "Date"
arr(4) = "Elderberry"

Beispiel 2: Vorhandene Daten mit "ReDim Preserve" beibehalten

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements, keeping the existing data
ReDim Preserve arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
' The previous values are preserved, so we can add more elements
arr(3) = "Date"
arr(4) = "Elderberry"

Achtung: Wenn Sie ein Array kleiner machen als es ursprünglich war, gehen Daten in den eliminierten Elementen verloren.

Wenn Variablen initialisiert werden, wird eine numerische Variable als 0 initialisiert und eine Zeichenfolgenvariable als Zeichenfolge mit Nulllänge (""). Einer Variable, die auf ein Objekt verweist, muss mit der Set-Anweisung ein vorhandenes Objekt zugewiesen werden, bevor sie verwendet werden kann. Bis ihr ein Objekt zugewiesen ist, hat die deklarierte Objektvariable den Sonderwert "Nothing".