2013-11-26 46 views
2

你能告訴我有人爲什麼只是每隔一秒鐘被刪除,但是如果我關閉worksheets.delete行比消息框中出現所有工作表名稱。刪除工作表與循環

Sub tor() 
    Dim wsz As Integer 

    wsz = Application.Worksheets.Count 

    For i = 2 To wsz 
     MsgBox Application.Worksheets(i).Name 
     Application.DisplayAlerts = False 
     Application.Worksheets(i).Delete 
    Next i 
End Sub 

回答

2

反向刪除表單。每次刪除工作表時,工作表索引都會移動。

Sub tor() 
    Dim wsz As Integer, i as Long 

    wsz = ThisWorkbook.Worksheets.Count 

    Application.DisplayAlerts = False 

    For i = wsz To 2 Step -1 
     ThisWorkbook.Worksheets(i).Delete 
    Next i 

    Application.DisplayAlerts = True 
End Sub 
3

會發生什麼事是,當你從工作表集合中刪除工作表,下一張帶你剛剛刪除的一個指數。然後您增加i,跳過您實際想要刪除的下一張。

最簡單的解決方案是從結尾開始刪除工作表。

For i = ThisWorkbook.Worksheets.Count To 2 Step -1 
    Application.Worksheets(i).Delete 
Next i