2016-10-13 2 views
-1

Я пытаюсь «автоматически» очистить несколько листов с помощью этого простого кода ниже. Код работает, если у меня есть только один элемент в моем массиве, но как только я помещаю два или более, он удаляет все из последнего элемента («TestMA» в этом случае).Строка удаления строк в нескольких листах

Dim SheetsArray As Sheets 
Set SheetsArray = ActiveWorkbook.Sheets(Array("TestCS", "TestMA")) 
For Each msheets In SheetsArray 
    With msheets 

    i = 8 
    Do While i < 600 
     If .Cells(i, 2) = "" Then 
      Rows(i).Delete Shift:=xlUp '''''HERE IS THE PROBLEM 
      i = i - 1 
     End If 
     i = i + 1 
    Loop 

    End With 
Next msheets 

я определил, что проблема с Ряды (I) .Delete сдвига: = xlUp линии.

Справка!

ответ

1

Вместо

Rows(i).Delete Shift:=xlUp '''''HERE IS THE PROBLEM 

Использование

.Rows(i).Delete Shift:=xlUp '''''NOTE THE INITIAL PERIOD 
+0

Я попробовал это, и это не работает для меня .., похоже, не имели ничего менять. – MM117

Смежные вопросы