2012-07-12 32 views
15

Đây là mã im VBA sử dụng để cố gắng thêm một tờ mới đến nơi cuối cùng trong bảng tínhThêm tấm đến cuối workbook trong Excel (phương pháp thông thường không làm việc?)

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

Tôi thấy điều này trong một câu hỏi tương tự trên trang web này. Nó không hoạt động.

Tôi làm điều này trong một vòng lặp và mỗi trang tính được thêm vào vị trí thứ hai trong các trang tính. Có 2 tấm đó là vĩnh viễn ở đó (thông tin và tóm tắt) và sau đó tôi đi trước để thêm 5 hơn gọi là "thử nghiệm" từ 1 đến 5. Tôi luôn luôn kết thúc với tờ theo thứ tự:

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

Nhưng những gì tôi muốn/đã mong là:

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

(vòng lặp không tạo ra chúng theo thứ tự dự kiến ​​vì vậy vấn đề không phải là ở đó.)

Nếu tôi trao đổi các tờ tóm tắt và thông tin trước khi tôi bắt đầu sau đó họ ở những nơi đối diện khi tôi làm xong.

Tôi đang làm gì sai?

Trả lời

23

Hãy thử điều này

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

ok, hoạt động .... nhưng tôi chỉ đang sử dụng một sổ làm việc ở nơi đầu tiên vậy tại sao điều đó lại gây ra sự cố? – Jacxel

+0

Nếu tôi không sai, bạn có ít nhất 2 WB mở. Bạn có thể kiểm tra lại không? WB nào là 'mainWB' đề cập đến? –

+0

oh chờ ... không bao giờ, tôi forgor các tập tin CSV vĩ mô đã được mở. Cảm ơn ... một lần nữa ... bạn dường như đã trả lời 50% số câu hỏi của tôi XD – Jacxel

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

có lẽ nên được

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

@Siddharth - đánh tôi! –

+0

+ 1 Không có bài đăng ít hơn cùng một lúc :) –

+0

Tôi đã 55 giây quá chậm. – danielpiestrak

1

Hãy chắc chắn để đủ điều kiện đầy đủ tờ của bạn mà workbook họ đang tham khảo!

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

Một sai lầm phổ biến là

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

dẫn đến Lỗi 1004. Mặc dù nó không phải là rõ ràng ở tất cả từ các tài liệu chính thức, nó quay ra rằng 'Sau' tham số không thể là một số nguyên, nó phải là một tham chiếu đến một trang tính trong cùng một sổ làm việc.

Các vấn đề liên quan