Wie lösche ich eine tabelle in vba?
Um ein Array in VBA zu löschen, müssen Sie die Anweisung „Erase“ verwenden. Fügen Sie das Schlüsselwort „Erase“ vor dem Namen der Tabelle hinzu, die Sie löschen möchten. Beachten Sie jedoch, dass alle Werte aus der Tabelle zurückgesetzt werden. In der folgenden Tabelle haben Sie 3 Elemente und wir haben die Erase-Anweisung verwendet, um alles zu löschen.
Sub myMacro1() Dim myArray() As Long ReDim myArray(4) myArray(1) = 1 myArray(2) = 2 myArray(3) = 3 myArray(4) = 4 ReDim myArray(1 To 5) MsgBox myArray(3) End Sub
Und mit dieser Anweisung wurden alle Elemente aus dem Array gelöscht, und wenn wir Debug.Print (Immediate Window) verwenden, um das Array-Element abzurufen, ist nichts mehr übrig.
Klare dynamische Tabelle
Wenn Sie ReDim verwenden, werden alle Elemente gelöscht. Sie können jedoch die Anweisung „preserve“ verwenden, um einige Elemente beizubehalten und ein Array teilweise zu löschen. Im folgenden Beispiel haben wir ein Array und wir haben den vierten Wert teilweise gelöscht und dann die Elemente wieder auf 5 gesetzt.
Und wenn Sie ein dynamisches Array teilweise löschen möchten.
Sub myMacro2() Dim myArray() As Long ReDim myArray(1 To 4) myArray(1) = 1 myArray(2) = 2 myArray(3) = 3 myArray(4) = 4 'erase position 4 but preserve the 1,2, and 3 ReDim Preserve myArray(1 To 3) 'redefine the array items to five ReDim Preserve myArray(1 To 5) MsgBox myArray(3) End Sub
Wichtige Punkte
- Wenn Sie eine feste Tabelle löschen:
- In einem Array, das alle Werte einer Zeichenfolge enthält, setzt die Erase-Anweisung alle Elemente mit (variabler Länge) auf die Zeichenfolge mit der Länge Null „ “ und (fester Länge) auf Null zurück.
- In einem Array mit numerischen Werten setzt die Erase-Anweisung alle Elemente auf Null zurück.
- In einem Array, das ein variierender Datentyp ist, werden durch Clear-Anweisungen alle Elemente auf leer zurückgesetzt.
- In einem Array, das Objekte enthält, setzt die Erase-Anweisung alle Elemente auf Null zurück.
- In einem Array mit Objekten setzt die Erase-Anweisung alle Elemente zurück, wenn es sich um eine separate Variable handelt.
- Wenn Sie ein dynamisches Array löschen, gibt die Erase-Anweisung den vom dynamischen Array verwendeten Speicherplatz frei.