Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Set Range Cells

Set Range Cells
07.04.2017 08:31:50
Markus
HILFE!!!
Hab unglaubliches Problem mit Range Objekten
Ich möchte den Ausdruck
Set rng3 = Sheets("Biss").Range("Q6:Q" & LzBiss)
variabel gestallten, nämlich so:
wk = 17
Set rng3 = Sheets("Biss").Range(Cells(6, wk), Cells(LzBiss, wk))
Hier bringt er mir jedoch den bekannten und nervigen Fehler 1004.
Kann mir von euch jemand verraten was ich falsch mache?
Danke
Markus
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Set Range Cells
07.04.2017 08:37:51
Nepumuk
Hallo,
die Cells-Eigenschaften in deinem Code beziehen sich auf die aktive Tabelle. Daher:
wk = 17
With Worksheets("Biss")
    Set rng3 = .Range(.Cells(6, wk), .Cells(LzBiss, wk))
End With

Gruß
Nepumuk
Anzeige
AW: sorry
07.04.2017 08:41:10
Werner
Hallo Nepomuk,
deinen Beitrag hatte die Forensoftware noch nicht drin, jetzt leider doppelt.
Gruß Werner
AW: Set Range Cells
07.04.2017 08:49:31
Markus
Ok, so funkt es.
Danke
AW: Set Range Cells
07.04.2017 08:39:27
Werner
Hallo Markus,
With Sheets("Biss")
Set rng3 = .Range(.Cells(6, wk), .Cells(LzBiss, wk))
End With
Beachte die Punkte vor Range und vor Cells. Damit wird auf das im With angegebene Blatt referenziert.
Gruß Werner
Anzeige
AW: Set Range Cells
07.04.2017 08:50:48
Markus
Bist schon der zweite in der kurzen Zeit, das klappt ja wunderbar.
So geht's.
Danke.
Gerne u. Danke für die Rückmeldung. o.w.T.
07.04.2017 10:44:56
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Setzen von Bereichszellen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um den Bereich in Excel mit VBA zu setzen, kannst du die Set Range-Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Schreibe den folgenden Code:

    Sub SetRangeExample()
       Dim wk As Integer
       Dim LzBiss As Integer
       LzBiss = 10 ' Beispielwert, ändere nach Bedarf
       wk = 17 ' Spalte, die gesetzt werden soll
    
       With Sheets("Biss")
           Set rng3 = .Range(.Cells(6, wk), .Cells(LzBiss, wk))
       End With
    End Sub
  4. Führe das Makro aus, um den Bereich festzulegen.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Arbeiten mit vba set range cells ist der Laufzeitfehler 1004, der auftritt, wenn du versuchst, auf Zellen zuzugreifen, die nicht existieren oder nicht richtig referenziert sind. Hier sind einige Tipps zur Fehlerbehebung:

  • Problem: "Laufzeitfehler 1004: Anwendung oder objektdefinierter Fehler"

    • Lösung: Stelle sicher, dass du die Cells-Eigenschaft im Kontext des gewünschten Arbeitsblatts verwendest. Nutze die With-Anweisung wie im obigen Beispiel.
  • Problem: Bezug auf die falsche Tabelle

    • Lösung: Überprüfe, ob der Name des Arbeitsblatts in Sheets("Biss") korrekt ist.

Alternative Methoden

Es gibt verschiedene Methoden, um Bereiche in Excel zu setzen. Eine alternative Möglichkeit ist die Verwendung der Range-Methode direkt:

Sub AlternativeSetRange()
    Dim rng As Range
    Set rng = Sheets("Biss").Range("Q6:Q10") ' Direkte Setzung des Bereichs
End Sub

Diese Methode ist besonders nützlich, wenn du einen festen Bereich hast und keine Variablen benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die set range-Funktion in verschiedenen Szenarien anzuwenden:

  1. Dynamisches Setzen des Bereichs basierend auf einer Variablen:

    Sub DynamicRange()
       Dim lastRow As Long
       lastRow = Sheets("Biss").Cells(Rows.Count, 1).End(xlUp).Row ' Letzte Zeile finden
       Set rng3 = Sheets("Biss").Range("A1:A" & lastRow)
    End Sub
  2. Verwendung von Set Range mit Zellen:

    Sub SetRangeWithCells()
       Dim startRow As Integer
       Dim endRow As Integer
       startRow = 1
       endRow = 5
       Set rng3 = Sheets("Biss").Range(Cells(startRow, 1), Cells(endRow, 1)) ' Bereich A1:A5
    End Sub

Tipps für Profis

  • Verwende immer die With-Anweisung, wenn du auf mehrere Eigenschaften eines Objekts zugreifst. Das verbessert die Lesbarkeit und Leistung deines Codes.
  • Nutze die Option Explicit-Anweisung am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Teste deinen Code schrittweise und nutze den Debugger, um Probleme schnell zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich einen Bereich in einer anderen Tabelle setzen?
Du kannst den Tabellennamen in der With-Anweisung ändern, z.B. With Sheets("AndereTabelle").

2. Was mache ich, wenn ich mehrere Bereiche gleichzeitig setzen möchte?
Du kannst mehrere Set-Anweisungen innerhalb einer With-Anweisung verwenden oder die Bereiche in einer Union-Anweisung kombinieren.

3. Wie kann ich einen Bereich dynamisch basierend auf Benutzereingaben setzen?
Du kannst InputBox verwenden, um den Benutzer nach den Zeilen- oder Spaltennummern zu fragen und diese Werte dann in deiner Range-Definition verwenden.

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