2013-07-26 55 views
1

你好我寫了一個VBA宏來刪除我如果方案我有84個,他們被命名爲1,2,3,4,....,84所以我寫了這個代碼VBA方案Deleter宏只刪除奇數

Sub Dismantle() 
For Count = 1 To 84 
    ActiveSheet.Scenarios(Count).Delete 
Next 

End Sub 

但它只是刪除場景1,3,5,7,9 ......,83則返回錯誤:無法獲得工作表類的場景屬性。 這意味着它沒有名稱計數的情況下刪除(我認爲無論如何)
再次運行它刪除第一個第三個ect再次,所以它跳過每第二個場景。

+2

當你刪除場景#1,然後什麼#2#現在1,依此類推。改爲從84反向工作。 –

+0

哦,那好吧,它是如何解釋它,我希望計數是該場景的名稱,所以ActiveSheet.Scenarios(Count).Delete將刪除名爲count的場景。 –

+0

在你的情況下,「count」是一個數字,而不是一個字符串,所以你要按索引位置而不是名字來刪除。如果你想按名稱刪除,那麼你需要首先給每個場景一個不同的名字 - 例如「scen_001」 –

回答

3
Sub Dismantle() 
    For Count = 84 to 1 step -1 
     ActiveSheet.Scenarios(Count).Delete 
    Next 
End Sub 

你是如此接近:-)

或者,更靈活:

Do While ActiveSheet.Scenarios.Count > 0 
    ActiveSheet.Scenarios(1).Delete() 
Loop