2012-07-12 33 views
15

這是使用嘗試新的工作表在工作簿中添加表在Excel中結束工作簿(正常方法不能正常工作?)

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

我在看到這個加入到最後的地方VBA代碼IM類似的問題在這個網站上。它不工作。

我在循環中執行此操作,並將每個工作表添加到工作表中的第二個位置。有2張是永久存在(信息及摘要),然後我先加5個所謂的「測試」 1至5我總是按次序用牀單結束:

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

但我希望/在期待是:

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

(循環就產生他們預期的順序,所以這個問題是不存在的。)

如果我換了總結和信息表開始之前,我那麼他們是在我完成時在相反的地方。

我在做什麼錯?

回答

23

試試這個

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

好吧,那有效......但我只是在首先使用一個工作簿,所以爲什麼會造成問題? – Jacxel 2012-07-12 16:21:13

+0

如果我沒有錯,至少有2個WB打開。你可以仔細檢查?哪個WB是'mainWB'指的? – 2012-07-12 16:23:06

+0

哦,等等...從來沒有,我forgor宏開放的CSV文件。再次感謝...你似乎已經回答了我的問題50%XD – Jacxel 2012-07-12 16:25:45

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

也許應該

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

@Siddharth - 擊敗我! – 2012-07-12 16:19:20

+0

+ 1沒有那麼多同時發帖:) – 2012-07-12 16:19:33

+0

我55秒太慢了。 – danielpiestrak 2012-07-12 16:20:57

1

一定要完全限定你的牀單與工作簿它們在引用!

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

一個常見的錯誤是

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

導致錯誤1004雖然目前尚不清楚,在所有的正式文件,事實證明,在「後」參數不能是整數,它必須是對同一工作簿中工作表的引用。