徵求 visual basic vbs script , Excel 高手請答。

2008-11-23 7:09 am
自動開 sheet 和 delete sheet 的 vb script
(sheet 的數目和名稱當然是自定為佳)
是否可行?
更新1:

aLEC: 其實我不懂 vb, 如何能將上面語法寫成一個可執行的 vbs 檔,如何執行? 如要開多張 sheet, 是否不斷重複這句指令,例如: Worksheets.Add().Name = "MySheet1" Worksheets.Add().Name = "MySheet2" (這個我相信可以用 notepad 修改。)

更新2:

謝謝 aLEC 的回答, 其實我也回覆後也想到了那個方法, 行一個 macro, 開一張 sheet, 然後再 edit 個 macro script, 如下:

更新3:

Sub Worksheet() ' ' worksheet Macro ' §»¥Ñ allofus ?¨î¡A?šV: 2008/11/25 ' ' Worksheets.Add().Name = "MySheet1" Worksheets.Add().Name = "MySheet2" Worksheets.Add().Name = "MySheet3" End Sub 真的開了三張新 sheet。

回答 (2)

2008-11-26 2:09 am
✔ 最佳答案
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, 亦要注意一下.
2008-11-26 1:14 am
aLEC:

其實我不懂 vb,
如何能將上面語法寫成一個可執行的 vbs 檔,如何執行?
如要開多張 sheet, 是否不斷重複這句指令,例如:
Worksheets.Add().Name = "MySheet1"
Worksheets.Add().Name = "MySheet2"
(這個我相信可以用 notepad 修改。)


收錄日期: 2021-04-19 12:53:31
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20081122000051KK02403

檢視 Wayback Machine 備份