Bereichsgröße mit VBA ändern
Dieses Tutorial zeigt, wie Sie das Größe der Eigenschaft ändern des Bereichsobjekt zu ändern, um einen neuen Bereich zurückzugeben, dessen Größe vom ursprünglichen Range-Objekt geändert wurde.
Syntax
Die Syntax für die Resize-Eigenschaft lautet:
1 | Range("A1").Resize (RowSize, ColumnSize) |
Wobei Range("A1") Ihre Startreichweite ist.
RowSize und ColumnSize müssen größer als null sein. Jede Eingabe ist optional (Sie können beispielsweise RowSize weglassen, um nur die Anzahl der Spalten zu ändern, oder umgekehrt).
Anzahl der Zeilen und Spalten ändern
Das folgende Beispiel erweitert den Bereich um eine Zelle A1 auf den Bereich A1:D10, indem die Zeilenanzahl auf 10 und die Spaltenanzahl auf 5 erhöht wird.
1 | Bereich("A1").Größe ändern(10, 5).Auswählen |
Oder häufiger weisen Sie den Größenänderungsbereich einer Variablen zu:
12 | ' Größenbereich auf die gewünschte Größe ändern und einer Variablen zuweisenSet newRng = ActiveSheet.Range("A1").Resize(10, 5) |
Nur Zeilenanzahl ändern
Das folgende Beispiel ändert nur die Anzahl der Zeilen:
12 | ' Nur Zeilengröße ändern, neuer Bereich ist $ A$1:$A$10Setze newRng = rng.Resize(10) |
Nur Spaltenanzahl ändern
Das folgende Beispiel ändert nur die Anzahl der Spalten:
12 | ' Nur Spaltengröße ändern, neuer Bereich ist $A$1:$E$1Setze newRng = rng.Resize(, 5) |
Tabellenbereich skalieren, um Kopfzeilen auszuschließen
Wenn Sie eine Tabelle auf einem aktiven Blatt mit einer Kopfzeile haben, wählt der Code zuerst die gesamte Tabelle aus und bewegt sich dann eine Zeile nach unten, um die Kopfzeile mithilfe der Range.Offset-Methode auszuschließen. Anschließend wird die Range.Resize-Eigenschaft verwendet, um die Größe um eine Zeile zu reduzieren.
1234567891011 | Unter SelectTableData()' **WICHTIG**' Klicken Sie auf eine beliebige Zelle der Tabelle, bevor Sie das Makro ausführen' Mit Offset eine Zeile nach unten bewegen und dann die Bereichsgröße um eine Zeile reduzierenSet tbl = ActiveCell.CurrentRegion.Offset(1, 0).Resize(tbl.Rows.Count - 1, _tbl.Columns.Count)' Daten sind ohne Kopfzeile ausgewählttbl.Address.SelectEnd Sub |
2-D-Array in Bereich schreiben
Eine andere häufige Verwendung ist das Schreiben eines zweidimensionalen Arrays in ein Blatt. Da der zu schreibende Bereich der Größe des Arrays entsprechen sollte, die normalerweise nicht im Voraus bekannt ist, wird die Resize-Methode verwendet, um den Ausgabebereich einzustellen
Das folgende Beispiel liest die Daten im Bereich A1: E10 im aktiven Blatt in ein Array und schreibt das Array ab Zelle A1 in das Blatt "Ausgabe":
123456 | Unter WriteArray()' Daten in ein Array lesenDaten = Bereich("A1:E10").Wert' Größe des Ausgabebereichs ändern und Array schreibenWorksheets("Ausgabe").Range("A1").Resize(UBound(Daten, 1), UBound(Daten, 2)).Wert = DatenEnd Sub |
Geschrieben von: Vinamra Chandra