Herbers Excel-Forum - das Archiv
For Each ...
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: For Each ...
von: Ron Andres
Geschrieben am: 07.11.2003 09:39:33
Hallo,
ich möchte mit ner For Each Schleife alle Blätter (Tabellen und Diagramme) in einem Workbook durchtigern und unerwünschte Tabellen löschen. Ungefähr so
for each x in ActiveWorkbook
....
next x
Welchen Datenwyp muß mein X haben. Es funktioniert nicht mit Worksheets (wegen der Diagramme)..
Gruß Ron Andres
Betrifft: AW: For Each ...
von: Galenzo
Geschrieben am: 07.11.2003 09:54:58
Hallo,
mit
Sheets anstelle von WorkSheets erwischt du auch die Diagrammblätter.
mfg
Betrifft: AW: For Each ...
von: Ron Andres
Geschrieben am: 07.11.2003 09:56:29
Daran hatte ich auch schon gedacht. Aber Scheets ist die Auflistung aller Blätter. Geht leider nicht...
Gruß Ron Andres
Betrifft: AW: For Each ...
von: Galenzo
Geschrieben am: 07.11.2003 10:04:07
Warum nicht?
Bei mir geht das so:
Private Sub CommandButton1_Click()
Dim s As Object
For Each s In Sheets
MsgBox s.Name
Next
End Sub
Betrifft: AW: For Each ...
von: Yal
Geschrieben am: 07.11.2003 10:07:20
Probier etwas so ähnliches:
Sub test()
Dim x
For Each x In ThisWorkbook.Sheets
Debug.Print x.Name & x.Type
If x.Type = -4167 Then Debug.Print vbTab & "'ist sogar eine Tabelle!"
Next x
End Sub
gruß
Yal
Betrifft: AW: For Each ...
von: Michael Brueggemann
Geschrieben am: 07.11.2003 10:04:48
Hallo Ron,
so sollte es gehen:
Option Explicit
Sub test()
Dim i As Integer
With ThisWorkbook
For i = 1 To .Sheets.Count
' Hier kommt Deine Funktionalitaet
MsgBox .Sheets(i).Name
Next i
End With
End Sub
CIAO
Michael
Betrifft: AW: For Each ...
von: Ron Andres
Geschrieben am: 07.11.2003 10:07:38
Ja, das geht. Danke.
Aber trotzdem: Gibt es nicht sowas wie for each WokbookItem...
Betrifft: AW: For Each ...
von: Michael Brueggemann
Geschrieben am: 07.11.2003 12:56:04
Hallo Ron,
es geht natuerlich so. Grundsaetzlich handelt es sich bei "Sheets" moeglicherweise um Objekte von unterschiedlicher Art (Type = xlWorksheet / Type = 3 (=Diagramm))
Sub test()
Dim sht As Object
For Each sht In ThisWorkbook.Sheets
MsgBox sht.Name & " : " & sht.Type
Next sht
End Sub
CIAO
Michael