Zum Hauptinhalt springen

Preserve-Arrays in Excel VBA: Grundlagen und Verwendung

Preserve-Arrays sie stellen eine wichtige Funktion in Excel VBA dar, mit der Sie ein Array speichern und skalieren können, ohne Daten zu verlieren. Sie helfen auch bei der Arbeit mit großen Datenmengen und vereinfachen die Programmierung.

Wenn wir mit Arrays in VBA Excel arbeiten, haben wir oft das Problem, die Größe des Arrays zu ändern. Die traditionelle Möglichkeit, die Größe eines Arrays zu ändern, besteht darin, ein neues Array zu erstellen und die Daten aus dem alten Array in das neue zu kopieren. Dies erfordert jedoch zusätzliche Zeit und Ressourcen, insbesondere bei der Arbeit mit großen Arrays.

Preserve-Arrays lassen Sie uns dieses Problem umgehen. Ihre Verwendung ermöglicht es Ihnen, die Größe des Arrays zu ändern und gleichzeitig seine Daten zu speichern. Dies ist besonders nützlich, wenn Sie mit dynamischen Daten arbeiten, wenn sich die Anzahl der Elemente während der Ausführung eines Programms ändern kann.

Um die Funktion zu verwenden Preserve in Excel VBA genügt es, das Schlüsselwort "Preserve" einfach hinzuzufügen, bevor Sie ein Array definieren:

Auf diese Weise können wir die Größe des Arrays leicht ändern, Elemente hinzufügen und entfernen, ohne uns Gedanken über Datenverlust machen zu müssen. Beachten Sie jedoch, dass das Ändern der Größe von Preserve-Arrays mehr Computerressourcen erfordert, daher sollten Sie diese Funktion nicht missbrauchen und nur bei Bedarf verwenden.

Grundlagen der Verwendung von Preserve-Arrays in Excel VBA

Das Hauptmerkmal von Preserve-Arrays ist die Möglichkeit, ihre Dimension zu ändern, ohne Daten zu verlieren. Dies unterscheidet sie von normalen Arrays, bei denen eine Größenänderung zum Verlust vorhandener Werte führt. Mit Preserve-Arrays können Sie Daten flexibel verwalten und sich an sich ändernde Anforderungen anpassen.

Das Schlüsselwort Preserve wird verwendet, um ein Preserve-Array in VBA Excel zu deklarieren. Zum Beispiel:

Dim myArray() As IntegerReDim Preserve myArray(10)

In diesem Beispiel deklarieren wir ein myArray und setzen seine Dimension auf 10 Elemente. Wenn wir später die Größe des Arrays ändern möchten, können wir das Schlüsselwort Preserve verwenden :

ReDim Preserve myArray(20)

Das Ergebnis ist, dass das myArray eine Dimension von 20 Elementen hat, während alle vorherigen Werte beibehalten werden. Wenn die neue Array-Größe größer als die vorherige ist, werden die neuen Elemente abhängig vom Datentyp des Arrays mit Nullen oder Standardwerten gefüllt.

Es ist jedoch erwähnenswert, dass das Ändern der Größe eines Preserve-Arrays eine ressourcenintensive Operation sein kann und länger dauern kann als das Erstellen eines neuen Arrays. Wenn Sie daher häufig die Größe eines Arrays ändern, wird empfohlen, die Möglichkeit einer effizienteren Arbeit mit Daten im Voraus zu bewerten.

Grundlagen der Verwendung von Preserve-Arrays

Preserve-Arrays sind ein leistungsfähiges Werkzeug in der Excel-Programmiersprache VBA, mit dem Sie die Größe eines Arrays im laufenden Betrieb ändern können, ohne Daten zu verlieren.

Das Grundprinzip der Verwendung von Preserve-Arrays besteht darin, vorhandene Daten bei der Größenänderung des Arrays beizubehalten. Wenn ein Array mit dem Schlüsselwort Preserve deklariert wird, werden alle vorhandenen Elemente beibehalten, wenn sie die Größe ändern, und nur neue Elemente werden hinzugefügt oder der überflüssige Teil wird entfernt.

Verwenden Sie die folgende Syntax, um ein Preserve-Array in Excel VBA zu deklarieren:

Dim arrayName() As dataType

dabei ist arrayName der Name des Arrays und DataType der Datentyp der Arrayelemente.

Beispiel für die Deklaration eines Arrays von ganzen Zahlen, das zum Speichern von Schülerbewertungen verwendet wird:

Dim grades() As Integer

Nachdem Sie ein Array deklariert haben, können Sie die Größe des Arrays mithilfe des Schlüsselworts Preserve ändern. Um beispielsweise 5 neue Elemente hinzuzufügen:

ReDim Preserve grades(1 To 10)

Das Preserve-Schlüsselwort stellt sicher, dass alle vorherigen Werte beibehalten werden und die Größe des Arrays nur für neue Elemente geändert wird.

Sie können auch die Größe des Arrays reduzieren, um überflüssige Elemente zu entfernen:

ReDim Preserve grades(1 To 5)

In diesem Fall wird die Größe des Arrays auf 5 Elemente reduziert, und alle Elemente mit Indizes größer als 5 werden entfernt.

Die Verwendung von Preserve-Arrays kann die Arbeit mit Arrays in VBA Excel erheblich vereinfachen, indem Sie ihre Größe dynamisch ändern können, ohne Daten zu verlieren. Dies ist besonders nützlich, wenn Sie mit einer variablen Datenmenge arbeiten oder Vorgänge zum Löschen oder Hinzufügen von Elementen zu einem Array ausführen müssen.

Beispiele für die Verwendung von Preserve-Arrays in Excel VBA

Mit Preserve-Arrays in Excel VBA können Sie ein Array dimensionieren, ohne Daten zu verlieren. Dies ist eine sehr nützliche Eigenschaft, die in vielen Situationen verwendet werden kann. Betrachten Sie einige Beispiele für die Verwendung von Preserve-Arrays.

  • Hinzufügen von Elementen am Ende eines Arrays: Wenn Sie am Ende eines vorhandenen Arrays ein neues Element hinzufügen möchten, können Sie die Funktion ReDim Preserve verwenden. Ein Beispiel:
Dim arr(2) As Integerarr(0) = 1arr(1) = 2arr(2) = 3ReDim Preserve arr(3)arr(3) = 4

Nachdem dieser Code ausgeführt wurde, enthält das arr-Array die folgenden Elemente: [1, 2, 3, 4]. Beachten Sie, dass die ReDim Preserve-Funktion die vorhandenen Werte des Arrays beibehält und seine Dimension ändert.

  • Entfernen von Elementen aus einem Muster: Wenn Sie Elemente aus einem Array entfernen müssen, können Sie die Funktion ReDim Preserve mit der neuen Array-Dimension verwenden. Ein Beispiel:
Dim arr(3) As Integerarr(0) = 1arr(1) = 2arr(2) = 3arr(3) = 4ReDim Preserve arr(2)

Nachdem dieser Code ausgeführt wurde, enthält das arr-Array die folgenden Elemente: [1, 2, 3]. Das Element mit dem Index 3 wurde aus dem Array entfernt. Beachten Sie, dass die ReDim Preserve-Funktion die vorhandenen Werte des Arrays beibehält und seine Dimension ändert.

  • Kopieren eines Arrays mit Größenänderung: Wenn Sie ein Array kopieren müssen, um seine Dimension zu ändern, können Sie auch die Funktion ReDim Preserve verwenden. Ein Beispiel:
Dim arr1(2) As Integerarr1(0) = 1arr1(1) = 2arr1(2) = 3Dim arr2() As IntegerReDim Preserve arr2(2)arr2 = arr1

Nachdem dieser Code ausgeführt wurde, enthält das arr2-Array die folgenden Elemente: [1, 2, 3]. Beachten Sie, dass wir zuerst ein neues Array arr2 mit der gewünschten Dimension deklarieren und ihm dann Werte aus dem Array arr1 zuweisen.

  • Kombinieren von zwei Arrays: Wenn Sie zwei Arrays zu einem kombinieren müssen, können Sie die ReDim Preserve-Funktion verwenden, um ein neues Array mit der gewünschten Dimension zu erstellen und dann die Werte aus beiden Arrays in das neue Array zu kopieren. Ein Beispiel:
Dim arr1(2) As Integerarr1(0) = 1arr1(1) = 2arr1(2) = 3Dim arr2(1) As Integerarr2(0) = 4arr2(1) = 5Dim arr3() As IntegerReDim Preserve arr3(4)Dim i As IntegerFor i = 0 To 2arr3(i) = arr1(i)Next iFor i = 0 To 1arr3(i + 3) = arr2(i)Next i

Nachdem dieser Code ausgeführt wurde, enthält das arr3-Array die folgenden Elemente: [1, 2, 3, 4, 5]. Wir erstellen ein neues Array arr3 mit der gewünschten Dimension, kopieren dann die Werte aus dem Array arr1 nach arr3 und kopieren dann die Werte aus dem Array arr2 nach arr3.

Beispiele für die Verwendung von Preserve-Arrays in Excel VBA helfen Ihnen, besser zu verstehen, wie diese Funktion bei der Arbeit mit Arrays nützlich sein kann. Beachten Sie, dass die Verwendung der ReDim Preserve-Funktion einige Leistungseinschränkungen haben kann, daher wird empfohlen, sie mit Bedacht zu verwenden.