2016-10-21 4 views
1

Ich versuche Excel-Arbeitsblätter am Ende einer Arbeitsmappe hinzuzufügen und reserviere das erste Arbeitsblatt für eine Zusammenfassung.Hinzufügen von Excel-Arbeitsblättern zum Arbeitsmappenende

import win32com.client 

Excel = win32com.client.DispatchEx('Excel.Application') 
Book = Excel.Workbooks.Add() 

Excel.Visible = True 

Book.Worksheets(3).Delete() 
Book.Worksheets(2).Delete() 

Sheet = Book.Worksheets(1) 

Sheet.Name = "Summary" 

Book.Worksheets.Add(After=Sheet) 

Sheet = Book.Worksheets(2) 

Sheet.Name = "Data1" 

Dieser Code fügt das neue Blatt nach links, trotz After=Sheet verwenden, und wenn ich das „Data1“ genannt Blatt ändern, überschreibt das Blatt mit dem Namen „Zusammenfassung“.

Dies ist ähnlich zu diesem Problem:

Adding sheets to end of workbook in Excel (normal method not working?)

aber die angegebenen Lösungen haben für mich nicht.

+0

Statt 'Nach = Sheet', versuchen' Nach = Sheets.Count' (Ich bin nicht so scharf auf PythonVBA, aber Sie wollen Sie es sicher abgeben das letzte Blatt – BruceWayne

+0

Was passiert, wenn Sie die gegebenen Lösungen versuchen? – wwl

+0

Weder 'After = Book.Worksheets.Count' noch' After = Book.Sheets (Book.Sheets.Count) 'funktionieren.Sie geben das gleiche Verhalten oben beschrieben. – PProteus

Antwort

1

Versuchen Sheet = excelApp.ActiveSheet mit:

Book.Worksheets.Add(After=Sheet) 
Sheet = Book.ActiveSheet 
Sheet.Name = "Data1" 
+0

Es tut mir leid, aber das neue Blatt erscheint immer noch nicht auf der rechten Seite von den bestehenden Blatt. – PProteus

Verwandte Themen