4

我正在尝试删除最后一个 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
4

1 回答 1

1

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

count = objWorkbook.Worksheets.Count - 1

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

那应该可以(实际上确实可以,我刚刚测试过)。

于 2012-12-14T17:38:59.383 回答