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

Forumthread: Range mit zwei Variablen

Range mit zwei Variablen
30.10.2019 16:03:32
Worthmann
Hallo zusammen,
Wie setzte ich eine Range aus Variablen zusammen.
Ich übergebe zwei Integers und möchte daraus meine Range zusammen bauen.
Zum Bsp: Icol = 5 und Irow = 1 (meine beiden Variablen)
Daraus soll quasi die Range("1:5") werden, jedoch mit den Variablen um diese immer zu ändern.
Somit soll es so aussehen Range(irow:Icol)
Danke für die Hilfe
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Cells(Irow,Icol) owT.
30.10.2019 16:04:18
ChrisL
cu
Chris
AW: Cells(Irow,Icol) owT.
30.10.2019 16:12:02
Worthmann
Hey Chris,
Leider hilft mir Cells nicht weiter... ich muss das Problem etwas genauer beschreiben.
Ich möchte über eine Funktion die letzte leere Zeile in einer Spalte finden. Genau diese Spalte möchte ich als Wert übergeben.
Dementsprechend brauche ich die Range der kompletten Spalte.
Wenn ich Range("F:F") nehme, klappt das. Das ich den übergebenen Integer als entsprechenden Spalten String umwandle habe ich bereits.
Somit ist mein Integer Icol = 6 und daraus mache ich den String Scol = "F"
Meine Range soll dann die Range(Scol:Scol) sein, also Range("F:F")
Dementsprechend muss ich wissen wie ich zwei Variablen in den Range einpflege.
Liebe Grüße
Anzeige
Columns(Icol) owT. :)
30.10.2019 16:31:03
ChrisL
.
AW: Cells(Irow,Icol) owT.
30.10.2019 16:43:20
Luschi
Hallo Worthmann,
Du hast das Prinzip der Verkettung von Range & Cells nicht verstanden; hier mal ein Beispiel: Sub Machmal() Dim rg As Range Dim icol As Integer, lRow As Long icol = 6 lRow = 100000 With ActiveSheet Set rg = .Range(.Cells(1, icol), .Cells(lRow, icol)) End With Debug.Print rg.Address 'Ergebnis: $F$1:$F$100000 Set rg = Nothing End Sub Gruß von Luschi
aus klein-Paris
Anzeige
hier nochmal der Code
30.10.2019 16:44:50
Luschi

Sub Machmal()
Dim rg As Range
Dim icol As Integer, lRow As Long
icol = 6
lRow = 100000
With ActiveSheet
Set rg = .Range(.Cells(1, icol), .Cells(lRow, icol))
End With
Debug.Print rg.Address  'Ergebnis: $F$1:$F$100000
Set rg = Nothing
End Sub
mfg Luschi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Range mit zwei Variablen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Range in Excel VBA mit zwei Variablen zusammenzustellen, kannst du die Cells- und Range-Methoden kombinieren. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Deklariere deine Variablen: Du benötigst zwei Integer-Variablen, um die Zeile und die Spalte zu definieren. Beispiel:

    Dim Icol As Integer
    Dim Irow As Integer
  2. Setze die Werte für die Variablen: Weisen Sie den Variablen die gewünschten Werte zu. Beispiel:

    Icol = 5
    Irow = 1
  3. Erstelle die Range: Verwende die Range-Methode zusammen mit Cells, um die Range dynamisch zu erstellen:

    Dim rg As Range
    Set rg = ActiveSheet.Range(Cells(Irow, Icol), Cells(100000, Icol))
  4. Debugging: Um sicherzustellen, dass alles korrekt funktioniert, kannst du die Adresse der Range ausgeben:

    Debug.Print rg.Address

Häufige Fehler und Lösungen

  • Fehler: Range kann nicht festgelegt werden: Stelle sicher, dass du die Variablen korrekt initialisiert hast und die Range innerhalb der Grenzen der Tabelle liegt.

  • Lösung zu Cells nicht gefunden: Wenn du Cells(Irow, Icol) verwendest, aber die Werte für Irow und Icol nicht korrekt gesetzt sind, wird der Fehler auftreten. Überprüfe, ob die Werte in den Variablen gültig sind.


Alternative Methoden

Einige Alternativen zur Verwendung von Range mit Variablen sind:

  1. Direkte Verwendung von Strings: Wenn du die Spaltenbezeichnung kennst, kannst du auch einfach Strings verwenden:

    Set rg = Range("F:F")  ' Für die gesamte Spalte F
  2. Verwendung von Columns: Anstatt Range zu verwenden, kannst du auch Columns verwenden:

    Set rg = Columns(Icol)

Praktische Beispiele

Hier ein Beispiel, das zeigt, wie du eine Range mit zwei Variablen erstellen kannst:

Sub Beispiel()
    Dim rg As Range
    Dim Icol As Integer
    Dim Irow As Integer
    Icol = 6  ' Spalte F
    Irow = 1  ' Zeile 1

    Set rg = ActiveSheet.Range(Cells(Irow, Icol), Cells(100000, Icol))
    Debug.Print rg.Address  ' Gibt die Adresse der Range aus
End Sub

Dieses Beispiel zeigt, wie du die gesamte Spalte F bis zur Zeile 100000 in einer dynamischen Range erfasst.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang deines Moduls, um sicherzustellen, dass du alle Variablen deklarierst. Dies hilft, Fehler zu vermeiden.

  • Vermeide es, magische Zahlen zu verwenden. Stattdessen kannst du Konstanten definieren, um die Lesbarkeit deines Codes zu erhöhen.

  • Verwende das With-Statement, um die Lesbarkeit und Effizienz deines Codes zu verbessern:

    With ActiveSheet
      Set rg = .Range(.Cells(Irow, Icol), .Cells(100000, Icol))
    End With

FAQ: Häufige Fragen

1. Wie kann ich eine Range über mehrere Spalten erstellen?
Du kannst mehrere Spalten angeben, indem du die Range-Methode entsprechend anpasst:

Set rg = ActiveSheet.Range(Cells(Irow, 1), Cells(100000, Icol))

2. Was, wenn ich die letzte befüllte Zeile finden möchte?
Verwende die End-Eigenschaft, um die letzte befüllte Zeile zu ermitteln:

lastRow = ActiveSheet.Cells(Rows.Count, Icol).End(xlUp).Row
Set rg = ActiveSheet.Range(Cells(Irow, Icol), Cells(lastRow, Icol))

Mit diesen Anleitungen und Beispielen solltest du in der Lage sein, eine Range mit Variablen effektiv zu erstellen und anzuwenden.

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