Цикл удаления строк на нескольких листах

#vba #excel #macros

#vba #преуспеть #макросы

Вопрос:

Я пытаюсь «автоматически» очистить несколько рабочих листов с помощью этого простого кода, приведенного ниже. Код работает, если у меня есть только один элемент в моем массиве, но как только я помещаю два или более, он удаляет все в последнем элементе (в данном случае «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).Удалить строку Shift:=xlUp.

Помогите!!

Ответ №1:

Вместо

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

Использовать

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

Комментарии:

1. Я попробовал это, и у меня это не сработало .. похоже, ничего не изменилось.