2012-07-12 16 views
15

Jest to kod im VBA przy użyciu spróbować dodać nowy arkusz do ostatniego miejsca w skoroszycieDodawanie arkuszy do końca skoroszytu w programie Excel (normalna metoda nie działa?)

mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name 

widziałem to w podobne pytanie na tej stronie. To nie działa.

Robię to w pętli i każdy arkusz zostaje dodany do drugiej pozycji w arkuszach. Istnieją 2 arkusze, które się tam na stałe (info i podsumowanie) i następnie dodać 5 poprzedzać bardziej zwany „test” 1 do 5. I zawsze kończy się z arkuszami w tej kolejności:

Info, sheet5, sheet4, sheet3, sheet2, sheet1, Summary 

ale co ja chcą/spodziewałem było:

Info, Summary, sheet1, sheet2, sheet3, sheet4, sheet5 

(pętla robi produkować je w oczekiwanej kolejności, więc problemu nie ma.)

Gdybym zamienić arkusze podsumowania i informacje zanim zacznę to są w przeciwnych miejscach, kiedy skończę.

Co robię źle?

Odpowiedz

23

Spróbuj

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name 
+0

OK, działa .... ale przede wszystkim korzystałem tylko z jednego skoroszytu, więc dlaczego spowodował problem? – Jacxel

+0

Jeśli się nie mylę, masz co najmniej 2 WBs otwarte. Czy możesz dokładnie sprawdzić? Który WB odnosi się do "mainWB"? –

+0

oh czekaj ... nevermind, i forgor pliki CSV, które otwiera makro. Dzięki ... znowu ... wydajesz się odpowiedzieć na 50% moich pytań XD – Jacxel

5
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name 

powinny prawdopodobnie

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name 
+0

@Siddharth - pokonaj mnie! –

+0

+ 1 Niemniej jednak za publikację w tym samym czasie :) –

+0

Byłem o 55 sekund za wolny. – danielpiestrak

1

Pamiętaj, aby w pełni kwalifikuje się arkusze z których skoroszycie są przedstawieniu!

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name 
1

Częstym błędem jest

mainWB.Sheets.Add(After:=Sheets.Count) 

co prowadzi do błędu 1004. Chociaż nie jest jasne, w ogóle z oficjalnej dokumentacji, okazuje się, że „po” parametr nie może być liczbą całkowitą, musi to być odniesienie do arkusza w tym samym skoroszycie.

Powiązane problemy