Kann mir jemand erklären was Resize in dieser Codezeile bewirkt?
wsQuelle.Cells(LZEins, 1).Resize(LzMax, LCol2).Copy .Range("A3")
Danke und Servus, Walter
Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11
drückst.
Füge ein neues Modul hinzu: Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt und wähle „Einfügen“ > „Modul“.
Schreibe den Code: Verwende die Resize
-Eigenschaft, um einen Zellbereich zu erweitern. Hier ein einfaches Beispiel:
Sub BeispielResize()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Tabelle1")
ws.Cells(1, 1).Resize(5, 3).Value = "Test"
End Sub
In diesem Beispiel wird der Inhalt in die Zellen A1 bis C5 geschrieben.
Führe den Code aus: Drücke F5
, um das Makro auszuführen und sieh dir das Ergebnis in Excel an.
Fehler: „Typen nicht übereinstimmend“
Resize
ansprechen möchtest, existiert.Fehler: „Laufzeitfehler 1004: Anwendung oder Objekt definiert Fehler“
Wenn Du mit der Resize
-Eigenschaft nicht vertraut bist, kannst Du auch die Range
-Methode verwenden. Hier ein Beispiel:
Sub BeispielRange()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Tabelle1")
ws.Range(ws.Cells(1, 1), ws.Cells(5, 3)).Value = "Test"
End Sub
Diese Methode erreicht das gleiche Ergebnis wie die Verwendung von Resize
, erlaubt jedoch mehr Flexibilität bei der Angabe von Zellen.
Mehrere Zeilen und Spalten kopieren:
Sub KopierenMitResize()
Dim wsQuelle As Worksheet
Set wsQuelle = ThisWorkbook.Sheets("Daten")
wsQuelle.Cells(2, 1).Resize(10, 5).Copy Destination:=ThisWorkbook.Sheets("Ziel").Range("A1")
End Sub
In diesem Beispiel wird ein Bereich von 10 Zeilen und 5 Spalten kopiert.
Dynamischen Bereich erstellen:
Sub DynamischerBereich()
Dim LzMax As Long, LCol2 As Long
LzMax = 3
LCol2 = 2
ThisWorkbook.Sheets("Daten").Cells(1, 1).Resize(LzMax, LCol2).Value = "Dynamisch"
End Sub
Verwende .Resize
in Kombination mit .Offset
: Dies ermöglicht es Dir, den Bereich an eine andere Position zu verschieben. Beispiel:
ws.Cells(1, 1).Offset(1, 0).Resize(5, 3).Value = "Verschoben"
Nutze die Application
-Objekte: Wenn Du die Performance verbessern möchtest, setze Application.ScreenUpdating
auf False
während der Ausführung deines Codes.
1. Was ist der Unterschied zwischen Resize
und Range
?
Resize
verändert die Größe eines bestehenden Bereichs, während Range
verwendet wird, um einen neuen Bereich zu definieren.
2. Wo finde ich weitere Hilfe zu Resize
in VBA?
Die VBA-Hilfe ist ein nützliches Tool, um mehr über die Resize
-Eigenschaft und ihre Anwendung zu erfahren. Du kannst sie direkt im VBA-Editor aufrufen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen