2012-12-14 2 views
4

엑셀 exept 마지막에있는 모든 워크 시트를 삭제하고 그것을 저장 한 다음 그 위치를 이동하려고합니다. 다른 모든 워크 시트는 삭제하지만 범위 오류가 있거나 범위를 벗어난 오류는 삭제되므로 작업을 수행 할 수 없습니다. 당신의 조건이 거짓이 될 수 없다 이후vbsript 및 엑셀은 마지막 하나를 제외하고 모든 워크 시트를 삭제합니다

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

Do do i = i'는 좋은 무한 루프입니다. 루프 상태를 다시 방문해야한다고 생각합니다. – Tomalak

답변

1

귀하의 루프는 무한 할 것이다 (i 것이다 항상 동일 i). 따라서 루프를 변경하여 마지막 단 하나의 워크 시트에서 시작하여 첫 번째 워크 시트로 거슬러 올라가십시오. 거의 다 왔어.

count = objWorkbook.Worksheets.Count - 1 

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

그럴 필요가 있습니다. 실제로는 테스트했습니다.

+0

그것은 훌륭한 친구가 될 것입니다. 고마워, 나는 이걸로 부족하다. 단계 명령을 읽어야합니다. –

관련 문제