Seite 1 von 1

Ein bestimmtes Arbeitsblatt in Excel zu finden

Verfasst: Freitag 14. März 2008, 12:21
von python_fan
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()
...

Verfasst: Freitag 14. März 2008, 12:42
von mkesper
Du kannst doch bestimmt einfach über alle Worksheets iterieren
(ungetestet):

Code: Alles auswählen

for sheet in workbook.worksheets():
    bla

Verfasst: Freitag 14. März 2008, 13:09
von python_fan
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.

Verfasst: Freitag 14. März 2008, 15:43
von Nicht_zu_definieren
Aus der Microsoft Office Excel 2003 Visual Basic Reference:

Code: Alles auswählen

For Each ws In Worksheets
    MsgBox ws.Name
Next ws
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?