2012-12-14 56 views
4

我想刪除excel exept最後一個工作表中的所有工作表並保存它,然後移動它的位置。我無法完成這項工作,因爲它會刪除所有其他工作表,但出錯和超出範圍錯誤。vbsript和excel刪除除最後一個之外的所有工作表

Set objExcel = CreateObject("Excel.Application") 

objExcel.Visible = True 
objExcel.DisplayAlerts = False 

Set objWorkbook = objExcel.Workbooks.Open("C:\M-tek 10-31-12_Tony.xlsx") 
i = objWorkbook.Worksheets.Count 

Do while i = i 
i = i - 1 
objWorkbook.Worksheets(i).Delete 
Loop 
+2

'儘管我=我是一個很好的無限循環。我認爲你應該重新訪問你的循環條件。 – Tomalak

回答

1

你的循環將是無限的,因爲你的狀態永遠是假的(i總是等於i)。所以你需要改變你的循環從最後一個工作表開始,然後回到第一個工作表。你快到了。

count = objWorkbook.Worksheets.Count - 1 

For i = count To 1 Step -1 
    objWorkbook.Worksheets{i}.Delete 
Next 

這應該做到這一點(事實上,它只是測試它)。

+0

這將是偉大的伴侶。謝謝我一直在這方面做得不足。我將不得不閱讀step命令 –

相關問題