Zum Hauptinhalt springen

So vergrößern Sie ein Array in VBA Excel: Ein einfacher Weg

In Excel VBA spielen Arrays eine wichtige Rolle bei der Datenverarbeitung. Sie ermöglichen das Speichern und Bearbeiten großer Datenmengen, wodurch die Verarbeitung und Analyse der Daten viel effizienter wird. Es kann jedoch manchmal notwendig sein, die Größe des Arrays im Arbeitsspeicher des Computers zu erhöhen.

Eine einfache Möglichkeit, ein Array in Excel-VBA zu vergrößern, besteht darin, die Funktion ReDim Preserve zu verwenden. Mit dieser Funktion können Sie die Größe des Arrays ändern und die vorhandenen Werte beibehalten. Auf diese Weise müssen Sie die Werte nicht aus dem alten Array in das neue Array kopieren.

Um die Funktion ReDim Preserve zu verwenden, müssen Sie den Namen des Arrays angeben, das Sie ändern möchten, und dann die neue Größe mit dem Schlüsselwort Preserve angeben. Wenn Sie beispielsweise ein Array von arr(3) haben und es auf arr(5) erhöhen möchten, können Sie den folgenden Code verwenden:

Nachdem dieser Code ausgeführt wurde, hat das arr-Array die Größe 5 und enthält alle Werte, die zuvor darin enthalten waren. Die alten Werte werden jedoch nur beibehalten, bis die neue Größe des Arrays die alte Größe überschreitet. Wenn die neue Array-Größe kleiner ist als die alte, gehen die Werte, die nicht in die neue Größe passen, verloren.

So erhöhen Sie die Array-Größe in VBA Excel: eine einfache Methode

In der in Excel verwendeten Programmiersprache VBA sind Arrays Datenstrukturen, die einen Satz von Werten desselben Typs speichern. Manchmal kann es vorkommen, dass Sie die Größe eines Arrays vergrößern möchten, um neue Elemente hinzuzufügen. In diesem Artikel werden wir uns eine einfache Methode zum Erhöhen der Array-Größe in VBA Excel ansehen.

Führen Sie die folgenden Schritte aus, um die Größe eines Arrays in VBA Excel zu erhöhen:

  1. Erstellen Sie ein neues Array mit großer Größe.
  2. Kopieren Sie Elemente aus dem alten Array in das neue Array.
  3. Das neue Array mit neuen Elementen ergänzen.

Im folgenden Beispielcode wird veranschaulicht, wie Sie die Größe eines Arrays in VBA Excel erhöhen können:

Sub УвеличитьРазмерМассива()Dim СтарыйМассив() As VariantDim НовыйМассив() As VariantDim Размер As LongDim НовыйРазмер As Long' Задаем начальный размер массиваРазмер = 5' Заполняем старый массив случайными значениямиReDim СтарыйМассив(1 To Размер)For i = 1 To РазмерСтарыйМассив(i) = iNext i' Увеличиваем размер нового массива в 2 разаНовыйРазмер = Размер * 2' Создаем новый массив с увеличенным размеромReDim НовыйМассив(1 To НовыйРазмер)' Копируем элементы из старого массива в новый массивFor i = 1 To РазмерНовыйМассив(i) = СтарыйМассив(i)Next i' Дополняем новый массив новыми элементамиFor i = Размер + 1 To НовыйРазмерНовыйМассив(i) = iNext i' Выводим новый массив на лист ExcelFor i = 1 To НовыйРазмерCells(i, 1).Value = НовыйМассив(i)Next i' Очищаем память, освобождая ресурсыErase СтарыйМассивErase НовыйМассив' Выводим сообщение об успешном увеличении размера массиваMsgBox "Размер массива увеличен!"End Sub

In diesem Beispiel erstellen wir ein altes Array mit der Anfangsgröße 5 und füllen es mit Werten zwischen 1 und 5 aus. Dann erstellen wir ein neues Array mit einer 2-fachen Vergrößerung und kopieren die Elemente aus dem alten Array in das neue Array. Als nächstes ergänzen wir das neue Array mit den Werten 6 bis 10. Schließlich geben wir ein neues Array in ein Excel-Arbeitsblatt aus und löschen den Speicher, wodurch Ressourcen frei werden.

Die Verwendung der Array-Vergrößerungsmethode in Excel VBA ermöglicht es daher, dem Array effektiv neue Elemente hinzuzufügen und sie später zu verarbeiten.

Definieren eines Arrays in VBA Excel

Es gibt zwei Arten von Arrays in VBA Excel: eindimensional und mehrdimensional.

Eindimensionales Array stellt eine Liste von Elementen dar, die über einen einzelnen Index verfügen. Es wird durch das Schlüsselwort Dim , den Namen des Arrays, den Elementtyp und die Anzahl der Elemente im Array in Klammern definiert. Zum Beispiel:

Dim myArray(5) As Integer

In diesem Beispiel erstellen wir ein myArray aus 6 Elementen vom Typ Integer.

Mehrdimensionales Array stellt eine Tabelle von Elementen dar, die mehrere Indizes aufweisen. Es ist ähnlich wie ein eindimensionales Array definiert, aber die Anzahl der Indizes wird in zwei Klammern durch Kommas getrennt angegeben. Zum Beispiel:

Dim myArray(3, 3) As String

In diesem Beispiel erstellen wir ein myArray aus 16 Elementen vom Typ String mit 2 Indizes.

Mit der Array-Definition in VBA Excel können Sie Datenstrukturen mit vielen Elementen erstellen und verwalten, wodurch die Programmierung effizienter und komfortabler wird.

Verstehen von Array-Größenbeschränkungen

In Excel-VBA sind Arrays auf die maximale Größe beschränkt, die programmgesteuert oder durch Systemeinschränkungen festgelegt wird. Die Dimension von Arrays in Excel VBA ist auf 65536 Zeilen und 256 Spalten beschränkt. Dies bedeutet, dass die maximale Anzahl von Elementen, die ein eindimensionales Array enthalten kann, 65536 beträgt und die maximale Anzahl von Elementen in einem mehrdimensionalen Array 16777216 beträgt.

Wenn Sie versuchen, die Größe des Arrays über diese Grenzen hinaus zu erhöhen, kann der Versuch zu einem Laufzeitfehler führen. Ihr Code sollte sich solcher Größenbeschränkungen des Arrays bewusst sein und geeignete Maßnahmen ergreifen, um Fehler zu vermeiden.

Eine Möglichkeit, Array-Größenbeschränkungen in Excel-VBA zu umgehen, besteht darin, mehrere Arrays anstelle eines größeren Arrays zu verwenden. Sie können ein großes Array in mehrere kleinere Arrays aufteilen und diese Teile des Arrays in Ihrem Code zusammen verwenden.

Anstatt beispielsweise ein zweidimensionales Array mit 65536 Zeilen und 256 Spalten zu erstellen, können Sie zwei Arrays mit jeweils 32768 Zeilen und 256 Spalten erstellen und dann mit diesen beiden Arrays arbeiten, als wäre es ein größeres Array.

Beachten Sie beim Arbeiten mit Arrays in VBA Excel die Größenbeschränkungen des Arrays und wenden Sie geeignete Strategien an, um diese Einschränkungen zu umgehen. Dies wird Ihnen helfen, Fehler zu vermeiden und sicherzustellen, dass Sie den Speicher und die Ressourcen Ihres Programms effizienter nutzen.

Verwenden von dynamischen Arrays zum Vergrößern der Größe

In Excel VBA können Sie dynamische Arrays verwenden, um die Größe des Arrays zu erhöhen, während das Programm ausgeführt wird. Mit einem dynamischen Array können Sie dem Array nach Bedarf neue Elemente hinzufügen, ohne dass eine vordefinierte Größe erforderlich ist.

Um ein dynamisches Array zu erstellen, verwenden Sie das Schlüsselwort ReDim mit dem Namen des Arrays und der neuen Größe. Um beispielsweise die Größe eines Arrays zu erhöhen myArray für 10 Elemente können Sie den folgenden Code verwenden:

ReDim Preserve myArray(1 To UBound(myArray) + 10)

In diesem Beispiel UBound(myArray) gibt den Index des letzten Elements im Array zurück. Mit dem Operator + wir erhöhen die Größe um 10 Elemente. Stichwort Preserve stellt sicher, dass die Werte bereits vorhandener Arrayelemente beibehalten werden.

Wenn Sie am Ende des Arrays ein neues Element hinzufügen möchten, können Sie den folgenden Code verwenden:

ReDim Preserve myArray(1 To UBound(myArray) + 1)myArray(UBound(myArray)) = newValue

Hier erhöhen wir zuerst die Größe des Arrays um 1 Element und weisen dem neuen Element dann einen Wert zu newValue.

Daher können Sie mit dynamischen Arrays die Größe des Arrays während der Programmausführung erhöhen, was bei der Arbeit mit großen Datenmengen oder unbestimmten Array-Größen nützlich sein kann.

Beispiel für eine einfache Möglichkeit, ein Array in VBA Excel zu vergrößern

Verwenden Sie die folgende einfache Methode, um ein Array in VBA Excel zu vergrößern:

  1. Erstellen Sie ein neues Array, das eine größere Kapazität als das ursprüngliche Array hat. Wenn das ursprüngliche Array beispielsweise die Dimension 5 aufweist, erstellen Sie ein neues Array mit der Dimension 10.
  2. Kopieren Sie alle Elemente aus dem ursprünglichen Array in das neue Array. Sie können dazu eine Schleife oder eine integrierte Array-Funktion verwenden.Copy .
  3. Fügen Sie dann dem neuen Array neue Elemente hinzu und erhöhen Sie die Dimension. Sie können neue Elemente mit einer Schleife am Ende des Arrays hinzufügen oder die Array-Funktion verwenden.Resize .

Hier ist ein Beispielcode, der diese Methode veranschaulicht:

Sub ExpandArray()Dim oldArray(4) As IntegerDim newArray() As IntegerDim i As Integer' Заполним исходный массив значениями от 0 до 4For i = 0 To 4oldArray(i) = iNext i' Увеличим новый массив до размерности 10ReDim newArray(9)' Скопируем все элементы из исходного массива в новый массивFor i = 0 To UBound(oldArray)newArray(i) = oldArray(i)Next i' Добавим новые элементы в конец нового массиваFor i = UBound(oldArray) + 1 To UBound(newArray)newArray(i) = iNext i' Выведем значения нового массива на листFor i = 0 To UBound(newArray)Cells(i + 1, 1).Value = newArray(i)Next iEnd Sub

Wenn Sie diesen Code ausführen, werden die Werte eines neuen Arrays, das Elemente zwischen 0 und 9 enthält, in einem Excel-Arbeitsblatt angezeigt:

123456789

Mit dieser einfachen Methode können Sie die Dimension eines Arrays in VBA Excel leicht erhöhen.