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

条件がfalseになることはないため、ループは無限になります(i常に等しくなりますi)。したがって、ループを変更して、最後の1つのワークシートから開始し、最初のワークシートに戻るように作業する必要があります。もうすぐです。

count = objWorkbook.Worksheets.Count - 1

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

それでうまくいくはずです(実際、私はそれをテストしただけです)。

于 2012-12-14T17:38:59.383 に答える