Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Range erweitern mit Resize?

Range erweitern mit Resize?
Peter
Guten Tag
Ich habe der Range-Variable rngABC einen range, der die Adresse $I$3:$L$3 enthält, zugewiesen.
Zudem enthält die Variable lngLEZ den Wert 6.
Wie kann ich die Range-Variable rngABC mit Hilfe der Variable lngLEZ erweitern auf $I$3:$L$6?
Ich habe mit Resize versucht, das hat nicht geklappt.
Gruss, Peter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Range erweitern mit Resize?
26.06.2012 11:46:33
guentherh
Hi Peter,
set rngABC = Range("$I$3:§L$" & lngLEZ)
Gruß,
Günther
AW: Range erweitern mit Resize?
26.06.2012 16:11:28
Peter
Hallo Günther
Vielen Dank. Ich habe eine Lösung gesucht, wo ich nur die Variablen rngABC und lngLEZ verwenden muss.
Ich habe eine (etwas komplizierte) Version gefunden.
Ginge es noch einfacher?
Gruss, Peter
Set rng_nimp = wkbExp.Worksheets("_").Range(Cells(rngABC.Row, rngABC .Column), Cells(lngLeZ, rngABC.Column + rngABC .Columns.Count - 1))
Anzeige
AW: Range erweitern mit Resize?
26.06.2012 20:31:42
Rudi
Hallo,
Ich habe eine Lösung gesucht, wo ich nur die Variablen rngABC und lngLEZ verwenden muss.
Das ist doch bei meiner der Fall!
Gruß
Rudi
AW: Range erweitern mit Resize?
27.06.2012 11:08:04
Peter
Hallo Rudi
Entschuldigung. Als ich die Antwort auf den Beitrag von Günther schrieb, habe ich übersehen, dass du einen Beitrag gepostet hast.
Deine Lösung entspricht genau meinem Wunsch.
Vielen Dank!
Gruss, Peter
Anzeige
AW: Range erweitern mit Resize?
26.06.2012 12:26:53
Rudi
Hallo,
set rngABC=rngABC.Resize(lngLEZ-rngABC.Row+1)
Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

Range erweitern mit Resize in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine bestehende Range in Excel VBA mit der Funktion Resize zu erweitern, kannst Du die folgenden Schritte befolgen:

  1. Definiere Deine Variablen: Stelle sicher, dass Du eine Range-Variable (z.B. rngABC) und eine Long-Variable (z.B. lngLEZ) hast. In diesem Fall könnte rngABC z.B. die Adresse $I$3:$L$3 und lngLEZ den Wert 6 beinhalten.

    Dim rngABC As Range
    Dim lngLEZ As Long
    Set rngABC = Range("$I$3:$L$3")
    lngLEZ = 6
  2. Verwende die Resize-Methode: Mit der Resize-Methode kannst Du die Range entsprechend den gewünschten Zeilen und Spalten anpassen. Um rngABC auf $I$3:$L$6 zu erweitern, kannst Du den folgenden Code verwenden:

    Set rngABC = rngABC.Resize(lngLEZ - rngABC.Row + 1)
  3. Prüfe das Ergebnis: Überprüfe, ob die Range jetzt korrekt auf die neue Größe eingestellt ist.


Häufige Fehler und Lösungen

  • Fehler: "Typen unverträglich"
    Lösung: Stelle sicher, dass die Variablen rngABC und lngLEZ korrekt deklariert sind und keine falschen Datentypen verwendet werden.

  • Fehler: "Bereich nicht gefunden"
    Lösung: Überprüfe die Adressierung der Range, insbesondere die Variablen, die Du in der Resize-Methode verwendest.


Alternative Methoden

Falls die Resize-Methode nicht die gewünschte Flexibilität bietet, gibt es alternative Ansätze:

  • Direkte Zuweisung: Du kannst die Range direkt mit einer neuen Adresse zuweisen, wenn Du die Variablen verwenden möchtest:

    Set rngABC = Range("$I$3:$L$" & lngLEZ)
  • Verwendung von Cells: Eine weitere Möglichkeit ist die Verwendung von Cells zur Definition der Range:

    Set rngABC = wkbExp.Worksheets("_").Range(Cells(rngABC.Row, rngABC.Column), Cells(lngLEZ, rngABC.Column + rngABC.Columns.Count - 1))

Praktische Beispiele

Hier sind einige Beispiele, die Du in Deiner VBA-Programmierung verwenden kannst:

  1. Einfaches Resize:

    Dim rngABC As Range
    Dim lngLEZ As Long
    Set rngABC = Range("$I$3:$L$3")
    lngLEZ = 6
    Set rngABC = rngABC.Resize(lngLEZ - rngABC.Row + 1)
  2. Erweiterung einer Range basierend auf Benutzerinput:

    Sub BeispielResize()
       Dim rngABC As Range
       Dim lngLEZ As Long
       lngLEZ = InputBox("Gib die letzte Zeile ein:")
       Set rngABC = Range("$I$3:$L$3")
       Set rngABC = rngABC.Resize(lngLEZ - rngABC.Row + 1)
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Immer am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler beim Resize zu vermeiden.
  • Performance: Bei großen Datenmengen kann die Verwendung von Resize die Performance beeinträchtigen. Prüfe Deine Code-Logik, um sicherzustellen, dass die Operationen so effizient wie möglich sind.

FAQ: Häufige Fragen

1. Wie kann ich die Größe einer Range dynamisch anpassen?
Du kannst die Resize-Methode verwenden, um die Größe basierend auf Variablen anzupassen, wie in den obigen Beispielen gezeigt.

2. Funktioniert Resize in allen Excel-Versionen?
Ja, die Resize-Methode ist in allen aktuellen Excel-Versionen verfügbar. Achte jedoch darauf, dass Du die richtige Syntax verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige