我正在尝试删除最后一个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
答案 0 :(得分:1)
你的循环将是无限的,因为你的条件永远不会是假的(i
将总是等于i
)。因此,您需要将循环更改为从最后一个工作表开始,然后向后移动到第一个工作表。你快到了。
count = objWorkbook.Worksheets.Count - 1
For i = count To 1 Step -1
objWorkbook.Worksheets{i}.Delete
Next
应该这样做(事实上它确实如此,我只是测试过它。)