Ein bestimmtes Arbeitsblatt in Excel zu finden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
python_fan
User
Beiträge: 13
Registriert: Mittwoch 12. März 2008, 14:06

Freitag 14. März 2008, 12:21

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()
...
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Freitag 14. März 2008, 12:42

Du kannst doch bestimmt einfach über alle Worksheets iterieren
(ungetestet):

Code: Alles auswählen

for sheet in workbook.worksheets():
    bla
python_fan
User
Beiträge: 13
Registriert: Mittwoch 12. März 2008, 14:06

Freitag 14. März 2008, 13:09

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.
Nicht_zu_definieren
User
Beiträge: 21
Registriert: Freitag 21. April 2006, 17:01
Kontaktdaten:

Freitag 14. März 2008, 15:43

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?
Antworten