Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sheetname vor Range

Sheetname vor Range
23.06.2020 15:40:58
Klause
hallo
In der Excel-Hilfe, Kapitel "Worksheet.Range-Eigenschaft", steht ganz unten folgende Zeile:
Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True
Ich verstehe nicht, was das Worksheets("Sheet1") soll?
Meine konkrete Frage:
In welchem Fall ist es sinnvoll, so, wie es hier steht, Worksheets("Sheet1"). vor "Cells" nicht, aber vor Range sehr wohl zu schreiben?
Gruß, Klause

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheetname vor Range
23.06.2020 16:24:58
Luschi
Hallo Klause,
siehe: https://docs.microsoft.com/de-de/office/vba/api/excel.worksheet.range
und da steht

With Worksheets("Sheet1")
.Range(.Cells(1, 1), .Cells(5, 3)).Font.Italic = True
End With
und damit beziehen sich .Range und .Cells auf die gleicher Tabelle Worksheets("Sheet1")
Gruß von Luschi
aus klein-Paris
AW: Sheetname vor Range
23.06.2020 16:58:33
Klause
Hallo
danke Luschi. Habe es hier gefunden.
Userbild
Ist aber eigentlich egal, denn meine Frage bezielt sich auf diese zitierte Zeile, und ob diese so seine Berechtigung hat. In der Hilfe habe ich sie nebenbei zufällig gefunden.
Gruß, Klause
Anzeige
AW: Sheetname vor Range
23.06.2020 17:16:11
onur
Der Punkt ist sozusagen ein "Trennzeichen" zw. Worksheets() und Range, um das Range DIESES Sheets auszulesen oder zu schreiben.
Range kann entweder so:
Range(Cells(x,y), Cells(y,z))

oder so
Range("A1:B12") 

geschrieben werden. Siehst du irgendwo einen Punkt?
AW: Sheetname vor Range
23.06.2020 17:32:40
Christian
Hallo Klause,
das von dir gezeigte Beispiel ist falsch, bzw. funktioniert nur, wenn das "Sheet1" auch das aktive Sheet ist.
Denn Worksheets("Sheet1").Range bezieht sich auf Worksheets("Sheet1") und Cells(1, 1) bzw. Cells(5, 3) auf das aktive Sheet.
Ich habe mir angewöhnt immer die Referenz auf das Worksheet zu setzen, egal ob aktiv oder nicht.
Des weiteren kann du die Größe des Bereich auch mit "Resize" angeben:
Bsp: Worksheets("Sheet1").cells(1, 1).Resize(5, 3).Font.Italic = True
Gruß
Christian
Anzeige
AW: Sheetname vor Range
23.06.2020 17:55:48
Klause
OK, Christian, das heisst, wenn aber "Sheet1" auch das aktive Sheet ist, kann ich mir das
Worksheets("Sheet1") sparen, oder?
Und wenn nicht, dann muss vor das Range, aber auch vor den Cells ein Sheet stehen. Und die eingangs präsentierte Mischform ist Unsinn, ist die Conclusio, denke ich.
Klause
AW: Sheetname vor Range
23.06.2020 17:46:35
EtoPHG
Hallo Klause,
Offensichtlich noch aus einer alten Hilfedatei von XL. Heute ist alles online.
Nein die zitierte hat keine Berechtigung."Das ist nicht nur nicht richtig; es ist nicht einmal falsch!", um Wolfgang Pauli zu zitieren.
Da die Cells-Objekte nicht vollständig referenziert sind, kann das zu einem Fehler führen wenn der Code mit einer aktivierten Tabelle läuft, die nicht "Sheet1" heisst.
Gruess Hansueli
Anzeige
AW: Sheetname vor Range
24.06.2020 11:41:51
Klause
Danke für Eure Antworten,
nun noch eine Bitte. Ich bräuchte eine Möglichkeit, die aus einem Ein-Zellen-Range ein Range macht, das diese und alle darunter liegenden nicht leeren Zellen seiner Spalte umfasst.
Also gegeben ist der Range einer Zelle namens rZelle, die im aktiven oder einem anderen Sheet liegen kann. Komme ich da ohne "with" aus?
Geht das in einer Zeile, oder muss man das in eine Function auslagern, da man erst das Blatt bestimmen muss?
Das ist keine an den Haaren herbeigezogene theoretische Aufgabe, sondern stellt sich mir beim Makro schreiben immer wieder.
Gruß, Klause
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige