返回列表 上一主題 發帖

[發問] (發問)★連刪n個工作表範例問題

[發問] (發問)★連刪n個工作表範例問題

剛學vba,資歷尚淺,問一些蠢問題還請見諒,不過持續有在精進。問題如下:

現在要刪工作表從第2個刪到第12個,我寫的程式不知道錯在哪裡,煩請大家指正。

Sub 巨集1()
' 巨集1 巨集
Dim i As Long
For i = 2To 12
    Sheets("工作表i").Select   <<<這行顯示出錯誤
    ActiveWindow.SelectedSheets.Delete
Next i
End Sub
---------------------------------------------------------------------------------------------------------
解決方案:(原始搞笑的版本)
'
    Sheets("工作表4").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("工作表5").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("工作表6").Select
    ActiveWindow.SelectedSheets.Delete
..
..
    Sheets("工作表12").Select   '就同樣的程式碼一直複製貼上,改工作表後面的數字
    ActiveWindow.SelectedSheets.Delete
End Sub
-----------------------------------------------------------------------
今天是運氣好只有12個工作表,哪一天如果100個工作表要刪,這個程式碼就變的非常長了..基於危機意識,特來版上請益。

之前學習是以錄製巨集再去編輯裡頭看程式碼,搭配幾本入學書籍,但處理大量資料之後,很多東西開始不能用錄的回去看,像上一篇"★請教各位 vba整理數據問題,根據條件,開特定新檔,貼檔,儲存,再條件判斷的問題"就沒有辨法用錄製的方式來反查,還好GBKEE大幫忙,問題才得以解決,才發覺自已的程式學習之路還有很遠的路要走。

因為在書局看了不少仿間日本人寫的書應用都寫的不錯,但比較少針對迴圈或大量資料做處理的範例來做各個解析。差不多一個章節,有大大能現身說法,學習的過程嗎?再來應該是要把迴圈包迴圈等技巧學的很熟練。

感謝kobo大,程式碼可以執行,我加了註解,讓後面學習的人能夠了解。

Sub 巨集1()
Dim i As Integer
For i = 12 To 2 Step -1 '從12減到2,每次間隔1
     Application.DisplayAlerts = False  '停止系統提示<這兩招昨天GBKEE大教我的
     Sheets(i).Delete '從工作表12開始刪到工作表2
     Application.DisplayAlerts = True '恢複系統提示
Next i
End Sub

TOP

回履:GBKEE大,剛剛我有試了,2010版本至少要留一個工作表才行,不能全刪。

TOP

        靜思自在 : 滴水成河。粒米成蘿,勿輕己靈,勿以善小而不為。
返回列表 上一主題