Discussion:
Worksheet vs. Sheet
(zu alt für eine Antwort)
Michael Schüller
2004-08-16 18:34:49 UTC
Permalink
Hallo zusammen,

kann mir jemand den grundsätzlichen Unterschied zwischen Worksheet und Sheet erklären, bzw. was für einen Sinn diese Unterscheidung
macht?


Danke im Voraus &
schönen Gruß
--
Michael
***@gmx.de
Frank Kabel
2004-08-16 19:13:07 UTC
Permalink
Hi
mit der Worksheets Auflisting bekommst Du nur die
Tabellenarbeitsblätter. Die Sheets Auflistung beinhaltet aber auch:
- Charts/Diagramme
- Excel 4 Makrovorlagen

--
Regards
Frank Kabel
Frankfurt, Germany
Post by Michael Schüller
Hallo zusammen,
kann mir jemand den grundsätzlichen Unterschied zwischen Worksheet
und Sheet erklären, bzw. was für einen Sinn diese Unterscheidung
Post by Michael Schüller
macht?
Danke im Voraus &
schönen Gruß
--
Michael
Melanie Breden
2004-08-16 19:25:08 UTC
Permalink
Hallo Michael,
Post by Michael Schüller
Hallo zusammen,
kann mir jemand den grundsätzlichen Unterschied zwischen Worksheet und Sheet erklären, bzw. was für einen Sinn diese
Unterscheidung macht?

schau dir in der OH die Worksheets- und Sheets-Auflistung an.

Die Sheets-Auflistung enthält alle Blatttypen der Arbeitsmappe, also auch
Charts, Dialog- und Makro-Blätter.
Die Worksheets-Auflistung, wie der Name schon sagt nur die Worksheets.

Angenommen, deine Mappe hat Tabellen-, Diagramm-, Makro- und Dialogblätter.
Um nur alle Tabellenblätter anzusprechen verwende folgende Prozedur:

Sub AlleWorksheets()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
Debug.Print wks.Name
Next wks
End Sub

Hingegen liefert folgende Version einen Fehler:
Sub AlleWorksheets1()
Dim wks As Worksheet
' Fehler, wenn ein Blatt kein Worksheet ist
For Each wks In ThisWorkbook.Sheets
Debug.Print wks.Name
Next wks
End Sub

Um alle Blätter, egal welchen Typs anzusprechen, verwende die Sheets-Auflistung:

Sub AlleBlätter()
Dim sh As Object
For Each sh In ThisWorkbook.Sheets
Debug.Print sh.Name
Next sh
End Sub

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Michael Schüller
2004-08-16 19:44:13 UTC
Permalink
Hallo Frank,
hallo Melanie,

erstmal Danke für Eure Antworten.

Dass die Worksheets im Gegensatz zu den Sheets auch Charts, etc. enthalten, war mir klar.
Aber wenn ich das richtig sehe, haben die beiden Objekte auch diverse unterschiedliche Methoden/Eigenschaften, die sich nicht
"damit" (s.o.) erklären lassen.
Vielleicht vertue ich mich da. Ich werde nochmal nachsehen. Falls ich mich geirrt habe, vergesst mein Posting...


Nochmal Danke & schönen Gruß
--
Michael
***@gmx.de
Melanie Breden
2004-08-16 20:13:01 UTC
Permalink
Hallo Michael,
Post by Michael Schüller
Dass die Worksheets im Gegensatz zu den Sheets auch Charts, etc. enthalten, war mir klar.
Aber wenn ich das richtig sehe, haben die beiden Objekte auch diverse unterschiedliche Methoden/Eigenschaften, die sich nicht
"damit" (s.o.) erklären lassen.
Vielleicht vertue ich mich da. Ich werde nochmal nachsehen. Falls ich mich geirrt habe, vergesst mein Posting...
habe evtl. noch einen Hinweis der dir weiterhilft:

Die Eigenschaften und Methoden eines Worksheet-Elementes beziehen sich
eindeutig auf das Worksheet-Objekt.
Ein Element der Sheets-Auflistung kennt nur die Eigenschaften und Methoden
die ein jeder Blatt-Typ mit sich führt.

Wenn du eine Variable vom Datentyp 'Worksheet' deklarierst, hilft dir unter
anderem die Intellisense bei der Auswahl der zugehörigen Eigenschaften
und Methoden für das Worksheet-Objekt.
Hingegen kann VBA bei Deklarierung als Objekt keine genaue Zuordnung machen
um welchen Blatt-Typ es sich handelt und deswegen versagt hier auch die Intellisense.

Sub Worksheet_Sheet()
Dim wks As Worksheet
Dim oSh As Object

Set wks = Worksheets(1)
Set oSh = Worksheets(1)

Debug.Print wks.
Debug.Print oSh.
End Sub

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Michael Schüller
2004-08-20 15:19:27 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
Post by Michael Schüller
Dass die Worksheets im Gegensatz zu den Sheets auch Charts, etc.
enthalten, war mir klar. Aber wenn ich das richtig sehe, haben die
beiden Objekte auch diverse unterschiedliche
Methoden/Eigenschaften,
Post by Melanie Breden
Post by Michael Schüller
die sich nicht "damit" (s.o.) erklären lassen. Vielleicht vertue
ich
Post by Melanie Breden
Post by Michael Schüller
mich da. Ich werde nochmal nachsehen. Falls ich mich geirrt habe,
vergesst mein Posting...
Vergesst mein Posting...
Ich habe da was gesehen, das nicht da war...
Post by Melanie Breden
Die Eigenschaften und Methoden eines Worksheet-Elementes beziehen sich
eindeutig auf das Worksheet-Objekt.
Ein Element der Sheets-Auflistung kennt nur die Eigenschaften und
Methoden die ein jeder Blatt-Typ mit sich führt.
Das ist mir klar. (Obwohl mein Ursprungsposting zugegebenermaßen
anderes vermuten lässt... ;-) )
Post by Melanie Breden
Wenn du eine Variable vom Datentyp 'Worksheet' deklarierst, hilft
dir
Post by Melanie Breden
unter anderem die Intellisense bei der Auswahl der zugehörigen
Eigenschaften und Methoden für das Worksheet-Objekt.
Hingegen kann VBA bei Deklarierung als Objekt keine genaue Zuordnung
machen um welchen Blatt-Typ es sich handelt und deswegen versagt
hier auch die Intellisense.
Auch das ist mir klar. (Obwohl mein Ursprungsposting... s.o.)
Post by Melanie Breden
Sub Worksheet_Sheet()
Dim wks As Worksheet
Dim oSh As Object
Set wks = Worksheets(1)
Set oSh = Worksheets(1)
Debug.Print wks.
Debug.Print oSh.
End Sub
Ich gehe mal nicht davon aus, dass die Zeile "Debug.Print wks." (und
folgende) von VBA klaglos akzeptiert werden soll, oder doch...?


Nochmal Danke & schönen Gruß
--
Michael
***@gmx.de
Loading...