Rückkehr in VBA-Code-Beispiele

Excel VBA – Bereichsgröße ändern

Größenänderung eines Bereichs mit VBA

In diesem Tutorial wird gezeigt, wie Sie die Eigenschaft „Resize“ des Range-Objekts verwenden, um einen neuen Bereich zurückzugeben, dessen Größe gegenüber dem ursprünglichen Range-Objekt geändert ist.

Syntax

Die Syntax für die Eigenschaft Resize lautet:

Range("A1").Resize (zeilen_groesse, spalten_groesse)

Dabei ist Range(„A1“) Ihr Ausgangsbereich.

zeilen_groesse und spalten_groesse müssen größer als Null sein. Jede Eingabe ist optional (z. B. können Sie zeilen_groesse weglassen, um nur die Anzahl der Spalten zu ändern, oder umgekehrt).

Anzahl der Zeilen und Spalten ändern

Das folgende Beispiel erweitert den Bereich mit einer Zelle A1 auf den Bereich A1:D10, indem die Zeilenzahl auf 10 und die Spaltenzahl auf 5 erhöht wird.

Range("A1").Resize(10, 5).Select

vba bereichsgroesse aendern

Oder Sie weisen den in der Größe veränderten Bereich einer Variablen zu, was häufiger vorkommt:

   ' Die Größe des Bereichs auf die gewünschte Größe ändern und ihn einer Variablen zuweisen
    Set neuerBereich = ActiveSheet.Range("A1").Resize(10, 5)

Nur die Anzahl der Zeilen ändern

Das folgende Beispiel ändert nur die Anzahl der Zeilen:

   ' Nur die Anzahl der Zeilen ändern. Der neue Bereich wird $A$1:$A$10
    Set neuerBereich = rng.Resize(10)

Nur Anzahl der Spalten ändern

Das folgende Beispiel ändert nur die Anzahl der Spalten:

   ' Nur die Anzahl der Spalten ändern 
   ' Der neue Bereich wird $A$1:$E$1
    Set neuerBereich = rng.Resize(, 5)

Größe des Tabellenbereichs ändern, um die Kopfzeile auszuschließen

Wenn Sie auf dem aktuellen Blatt eine Tabelle mit einer Kopfzeile haben, wählt der Code zunächst die gesamte Tabelle aus und geht dann eine Zeile nach unten, um die Kopfzeile mit der Methode Range.Offset auszuschließen. Anschließend wird die Eigenschaft Range.Resize verwendet, um die Größe um eine Zeile zu verringern.

Sub TabellenDatenAuswaehlen()
    ' **WICHTIG**
    ' Klicken Sie auf eine beliebige Zelle der Tabelle, bevor Sie das Makro ausführen
    
    ' Mit Offset eine Zeile nach unten verschieben und dann den Bereich um eine Zeile verkleinern
    Set tbl = ActiveCell.CurrentRegion.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
     tbl.Columns.Count)
     
    ' Daten werden ohne Kopfzeile ausgewählt
    tbl.Address.Select
End Sub

2-D-Array in Bereich schreiben

Eine weitere häufige Anwendung ist das Schreiben eines 2-dimensionalen Arrays in ein Blatt. Da der zu beschreibende Bereich mit der Größe des Arrays übereinstimmen soll, die normalerweise nicht im Voraus bekannt ist, wird die Methode Resize verwendet, um den Ausgabebereich festzulegen.

Das folgende Beispiel überträgt die Daten im Bereich A1:E10 im aktuellen Blatt in ein Array und schreibt das Array ab Zelle A1 in das Blatt ‚Ausgabe‘:

Sub ArraySchreiben()   
    ' Einlesen und Übertragen der Daten in ein Array
    daten = Range("A1:E10").Value
    ' Größe des Ausgabebereichs ändern und das Array beschreiben
    Worksheets("Ausgabe").Range("A1").Resize(UBound(daten, 1), UBound(daten, 2)).Value = daten
End Sub

Geschrieben von: Vinamra Chandra