作者aup65797 (有緣人)
看板Office
標題[問題] VBA Sheets.Count
時間Thu Feb 23 22:27:54 2017
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:Office
版本:2010
VBA
Sheets.Count執行第一次 , 執行第二次會一直累加
如何清除為零?
If xRow > 60000 Then
n = n + 1
Sheets.Add After:=Sheets(Sheets.Count) '新增工作表並放在最後面
Sheets("工作表" & n).Select '選擇工作表
xRow = 0
上面是說明檔案超過60000行 , 會把其它檔案放到工作表1
但現在有個問題 , 下次再執行時Sheets.Count不會從1開始 , 會從2開始 , 這是
為什麼呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.241.96.6
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1487860077.A.3AD.html
1F:→ soyoso: sheets.count在不增加工作表下,執行次數下會累加? 02/23 22:34
2F:→ aup65797: 就是Sheets.Add後會一直累加 , 要如何在下次執行時清零 02/23 22:38
3F:→ soyoso: 活頁簿內至少須有一張未隱藏的工作表,sheets.count如何清 02/23 22:40
4F:→ soyoso: 除為零 02/23 22:40
5F:→ aup65797: Sheets.Add after:=Sheets(Sheets.Count) 02/23 22:40
6F:→ soyoso: 貼巨集碼也不會知道原po希望要的結果是什麼 02/23 22:45
原有的Sheet1=>工作表1=>工作表2 執行時先刪除工作表1=>工作表2 再新增工作表1
=>工作表2 下次執行先刪除工作表1=>工作表2 再新增工作表1=>工作表2......
以此類推
※ 編輯: aup65797 (123.241.96.6), 02/23/2017 22:55:56
7F:→ soyoso: 如要每次新增工作表於某張工作表後面,以sheets(工作表名) 02/23 22:55
※ 編輯: aup65797 (123.241.96.6), 02/23/2017 22:57:16
※ 編輯: aup65797 (123.241.96.6), 02/23/2017 23:08:37
8F:→ soyoso: 回文的工作表2是指工作表"二"嗎? 02/23 23:06
※ 編輯: aup65797 (123.241.96.6), 02/23/2017 23:09:24
9F:→ soyoso: 刪除工作表名和新增工作表名相同嗎? 02/23 23:11
10F:→ aup65797: 相同的 02/23 23:12
11F:→ aup65797: 應該說不一定相同 , 因為你不知道下次檔案會有多大,可能 02/23 23:14
12F:→ aup65797: 更大 , 需要新增工作表3 工作表4 02/23 23:14
※ 編輯: aup65797 (123.241.96.6), 02/23/2017 23:15:31
13F:→ soyoso: 原文問到為什麼不會從1開始,因sheets.count為計數活頁簿 02/23 23:17
14F:→ soyoso: 工作表數量 02/23 23:17
15F:→ soyoso: 如要保持為1起累加,改以變數=變數+1 02/23 23:19
16F:→ aup65797: 如Sheets("工作表1").Delete Sheets.Count會變少嗎? 02/23 23:20
17F:→ soyoso: 會變少,但活頁簿內至少須有一張未隱藏的工作表 02/23 23:22
另外請教Sheets.Add 他可否新增工作表1 工作表2 下次執行也是新增工作表1 工作表2
※ 編輯: aup65797 (123.241.96.6), 02/23/2017 23:30:19
18F:→ soyoso: 可以worksheet.name設定 02/23 23:41
19F:→ Iories: 在If xRow > 60000 Then 之前加上以下的程式碼 02/24 10:36
20F:→ Iories: If Sheets.Count > 1 Then 02/24 10:36
21F:→ Iories: Application.DisplayAlerts = False 02/24 10:36
22F:→ Iories: For i = Sheets.Count To 2 Step -1 02/24 10:37
23F:→ Iories: Sheets(i).Delete 02/24 10:37
24F:→ Iories: Next i 02/24 10:37
25F:→ Iories: Application.DisplayAlerts = True 02/24 10:37
26F:→ Iories: End If 02/24 10:37
27F:→ aup65797: 感謝 , 解決了 02/26 10:45