Hallo,
ich bekomme eine Excel-Datei mit vielen Arbeitsblättern. Alle Arbeitsblätter sind mit einem eindeutigen Namen versehen. Meine Aufgabe ist, ein bestimmtes Arbeitsblatt mit einem vorgegebenen Namen zu finden und die anderen Arbeitsblättern zu löschen.
Nun ist die Frage: wie erfahre ich, wieviele Worksheets in einem Workbook vorhanden sind?
Dann kann ich eine Schleife bauen:
i = 1
while(i <= sheets_count):
sheet = workbook.Worksheets(i)
if sheet.Name != 'My_name':
sheet.delete()
...
Ein bestimmtes Arbeitsblatt in Excel zu finden
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
Du kannst doch bestimmt einfach über alle Worksheets iterieren
(ungetestet):
(ungetestet):
Code: Alles auswählen
for sheet in workbook.worksheets():
bla
-
- User
- Beiträge: 13
- Registriert: Mittwoch 12. März 2008, 14:06
Hallo mkallas,
das habe ich anfangs auch so gedacht. Aber anscheint workbook.worksheets() braucht ein Argument. Was von workbook.worksheets(sheet_name) zurückgegeben wird, ist nur ein sheet und nicht eine Liste von sheets.
das habe ich anfangs auch so gedacht. Aber anscheint workbook.worksheets() braucht ein Argument. Was von workbook.worksheets(sheet_name) zurückgegeben wird, ist nur ein sheet und nicht eine Liste von sheets.
-
- User
- Beiträge: 21
- Registriert: Freitag 21. April 2006, 17:01
- Kontaktdaten:
Aus der Microsoft Office Excel 2003 Visual Basic Reference:
For an Application object, returns a Sheets collection that represents all the worksheets in the active workbook. For a Workbook object, returns a Sheets collection that represents all the worksheets in the specified workbook. Read-only Sheets object.
Ist es vielleicht das wonach du suchst?
Code: Alles auswählen
For Each ws In Worksheets
MsgBox ws.Name
Next ws
Ist es vielleicht das wonach du suchst?