我試圖獲取由複製操作創建的工作表的句柄。根據用於工作代碼:獲取由Worksheet複製的最後一張工作表上的句柄。複製
Dim wsTempl As Worksheet, pageCount as Long
Set wsTempl = Sheets("Template")
For pageCount = 1 To 5
wsTempl.Copy After:=Sheets(Sheets.Count)
Set ws = Sheets(Sheets.Count)
ws.Name = "p" & pageCount
Next
但添加VeryHidden工作表到工作簿時停止。現在我的表格(Sheets.Count)正在獲取VeryHidden表格,而不是最後添加的表格。
當然,我可以用
Set ws = Sheets(wsTempl.Name & " (2)")
ws.Name = "p" & pageCount
,但似乎這麼醜,這真的是唯一的出路?有人能想到另一種方式嗎?
複製問題:
- 打開一個新的工作簿,命名爲第一個工作表「模板」 &刪除其它紙張
- ALT-F11 - 插入代碼模塊&粘貼上面的代碼
- F5應該告訴你它的工作原理。
- 插入工作表,使用工作表標籤將其拖動到集合的末尾
- 將其設置爲VeryHidden在VBA IDE
- F5再次,第一個代碼列表失效
原因似乎是即複製完成後= =不會在非常隱藏的表格之後複製,因此重命名錶格的代碼部分總是重命名非常隱藏的表格
要打破第二個代碼清單,只需命名您的模板:'Template(3)'並更新您的代碼。現在複製將創建'模板(4)'並且代碼被破壞。好吧,我們可以保留一條規則,我們應該命名我們的模板'Template(x)',其中x> 1 – 2009-08-08 13:01:52
我的意思是:「..我們只是有一個命名約定,不能命名我們的模板'Template(x)' x> 1「 – 2009-08-08 13:06:13
同時確保在運行之間刪除額外的紙張,否則它將失敗,因爲紙張已經存在。 – 2009-08-08 14:22:57