✔ 最佳答案
Worksheets.Add().Name = "MySheet"
Worksheets("MySheet").Delete
worksheets.add 和 worksheets.delete 都是很基本的語法, 我估你一定知, 問題係, 你想點自動法 ???
2008-11-25 18:09:43 補充:
喔.... 小的失禮了....
要在 Excel 執行一段程式碼有很多法子. VBA ( office 裡面用的, Visual Basic for Application) 是 Event Driven 的, 所以何時執行程式會同 Event 扯上關係. 例如打開 workbook, 會有 workbook_open event; 又例如你點選一張 worksheet, 會有 worksheet_activate event; 又或者你 click 一個 Button, 會有 button_click event; 程式何時 (又或者如何) 執制, 端的看你把程式碼放在那一個 event 裡面... 這種基礎知識就不在這裡多談了, 不過要想學好 VBA 這些都是一定要知道的.
===================================================
如果我地先唔理 Event 住, 可以試左寫 Macro 先
1. 按 Alt-F8, 顯示 Macro 對話窗
2. 在 Macro name 打入 Test , 按 Create
3. VBA Editor 彈左出黎, 裡面會有
Sub test()
End Sub
Sub <--- 我地叫呢種小程式做 subroutine, test 就係呢段程式個名
4. 在 Sub test() 同 End Sub 之間就可以打入程式碼了, 例如:
Worksheets.add().Name = "Mysheet1"
Worksheets.add().Name = "Mysheet2"
5. 然後可以 close 左個 VBA editor
6. 返回 Excel, 再按 Alt-F8, 會見到多左個 test, 你 select 左佢, 按 Run
7. 你就會見到結果的了, 會多左兩張 sheets.
===================================================
這只是第一步, 要自動化 ( 以我個人來說, 自動化即係越方便越好), 還有很多步驟要做, 例如, 你可以指定新增的 worksheet 的位置, 可以用 before / after 參數, 下例是不管你有多少張 sheets, 新增的永遠放在最後
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "MySheet"
又或者, 你可以用 inputbox() 函數, 每次執行時才由使用者指定 sheet name
sheet_name = inputbox("Please input a sheet name")
Worksheets.Add().Name = sheet_name
又或者, sheet name 一早在儲在 Sheet1 的 A1 裡
Worksheets.Add().Name = Worksheets(1).range("A1").value
又或者, 覺得 Macro 煩 ( 因為每次執行都要 alt-F8), 你可以在 worksheet 裡面加個 Command Button, 每次一 click 就會執行你的程式
又或者, 係每次開個 excel file 就自動 add 幾張 sheet 又得.
太多可能性, 唔知點樣的自動化最方便你.
再者, 如何避免相同的 sheet name 引起 error 等等的 data validation, 亦要注意一下.