vbscript和excel删除除最后一个之外的所有工作表

时间:2012-12-14 17:01:42

标签: excel vbscript

我正在尝试删除最后一个excel exept中的所有工作表并保存它然后移动它的位置。我无法得到它,因为它删除了所有其他工作表,但错误超出和超出范围错误。

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

1 个答案:

答案 0 :(得分:1)

你的循环将是无限的,因为你的条件永远不会是假的(i总是等于i)。因此,您需要将循环更改为从最后一个工作表开始,然后向后移动到第一个工作表。你快到了。

count = objWorkbook.Worksheets.Count - 1

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

应该这样做(事实上它确实如此,我只是测试过它。)