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

Forumthread: VBA-Range select

VBA-Range select
12.07.2004 12:13:38
Peter/Berlin
Hallo Ulf, gestern (11.07.04 um 20:49 Uhr) ist mir ein Fehler unterlaufen,
die Frage lautet:
Von einem Excel-Programm "A.xls" wird per VBA ein weiteres, bereits geöffnetes Excel-Programm "B.xls" aktiviert
und darin das entspr. Blatt "ABC" selektiert mit:
Windows("B.xls").Activate: Sheets("ABC").Select
Die weitere VBA-Ausführung
Sheets("ABC").Cells(1, 20) = 17
Sheets("ABC").Cells(1, 26).Select
klappt einwandfrei,
doch bei
Range(Cells(10, 20), Cells(12, 25)).Select ( ebenfalls in Sheets("ABC") )
kommt die Fehlermeldung
Select method of Range Class failed
Woran kann das liegen, ich habe keine Ahnung,
sicher ein ganz eifaches Problem, aber ich komme nicht darauf
Gruss
Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Range select
Ulf
Sheets("ABC") muss , wenn dieser Code ausgeführt wird, das aktive Blatt sein.
Range(Cells(10, 20), Cells(12, 25)).Select
Ansonsten ist die Syntax ok.
Ulf
Versuche Range("T10:Y12").Select (oT)
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

So selektierst du Bereiche in VBA für Excel


Schritt-für-Schritt-Anleitung

  1. Aktiviere das Excel-Fenster: Stelle sicher, dass die Excel-Datei, in der du arbeiten möchtest, aktiv ist. Das kannst du mit dem Befehl Windows("B.xls").Activate erreichen.

  2. Wähle das Blatt aus: Um ein bestimmtes Blatt zu aktivieren, verwende Sheets("ABC").Select.

  3. Verwende die richtige Syntax für Range: Um einen Bereich auszuwählen, musst du sicherstellen, dass das Blatt, in dem du arbeitest, aktiv ist. Der Befehl könnte folgendermaßen aussehen:

    Range(Cells(10, 20), Cells(12, 25)).Select
  4. Vermeide Fehler: Achte darauf, dass die Zellreferenzen korrekt sind und sich im aktiven Blatt befinden. Andernfalls erhältst du die Fehlermeldung "Select method of Range Class failed".


Häufige Fehler und Lösungen

  • Fehler: Select method of Range Class failed

    • Lösung: Stelle sicher, dass das Blatt, das du ansprechen möchtest, aktiv ist. Wenn du z.B. Range(Cells(10, 20), Cells(12, 25)).Select verwendest, muss Sheets("ABC") zuvor aktiv sein.
  • Problem beim Ausführen von Range-Befehlen

    • Lösung: Verwende activesheet.range, um sicherzustellen, dass du immer im aktuellen Blatt arbeitest:
      ActiveSheet.Range("T10:Y12").Select

Alternative Methoden

  • Direkte Range-Auswahl: Anstatt Cells zu kombinieren, kannst du auch direkt mit Strings arbeiten:

    Range("T10:Y12").Select
  • Verwende Set für Objekte:

    Dim myRange As Range
    Set myRange = ActiveSheet.Range("A1:A10")
    myRange.Select

Praktische Beispiele

  1. Bereich von Zellen auswählen:

    Sheets("ABC").Activate
    Range("A1:B10").Select
  2. Zellen in einer Schleife auswählen:

    Dim i As Integer
    For i = 1 To 10
       Cells(i, 1).Select
    Next i
  3. Einen Bereich in einer anderen Arbeitsmappe auswählen:

    Windows("B.xls").Activate
    Sheets("ABC").Select
    Range("C1:D5").Select

Tipps für Profis

  • Vermeide die Verwendung von .Select: In vielen Fällen kannst du Select vermeiden, was deinen Code schneller und klarer macht. Stattdessen kannst du direkt mit dem Range-Objekt arbeiten.

    ActiveSheet.Range("A1").Value = 10
  • Nutze With-Anweisungen:

    With ActiveSheet
      .Range("A1").Value = 5
      .Range("B1").Value = .Range("A1").Value * 2
    End With

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich im richtigen Arbeitsblatt arbeite? Verwende ActiveSheet.Name, um den Namen des aktiven Blattes zu überprüfen, bevor du Range-Befehle ausführst.

2. Was ist der Unterschied zwischen Select und Activate? Select wählt ein Objekt aus, während Activate ein Objekt aktiv macht, sodass du mit ihm arbeiten kannst, ohne es auszuwählen.

3. Kann ich mehrere Bereiche gleichzeitig auswählen? Ja, du kannst mehrere nicht zusammenhängende Bereiche auswählen, indem du den Bereich in Klammern setzt:

Union(Range("A1:A10"), Range("C1:C10")).Select

4. Wie kann ich einen Bereich dynamisch erstellen? Du kannst Variablen verwenden, um die Zellreferenzen zu definieren:

Dim startRow As Integer
startRow = 10
Range(Cells(startRow, 1), Cells(startRow + 5, 2)).Select

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