Создание следующего цикла - PullRequest
0 голосов
/ 04 августа 2020

как исправить программу? Эта программа перестает работать с ошибкой: недопустимая. Следующая ссылка на управляющую переменную на lin. След. N.

Sub RemoveRows5()
     ThisWorkbook.ActiveSheet.Cells.ClearFormats
    Dim n As Long
    n = Range("A" & Rows.Count).End(xlUp).Row
  
For i = n To 1 Step -1
 
        If InStr(1, ThisWorkbook.ActiveSheet.Cells(n, 1).Text, "<>", vbTextCompare) > 0 Then
            ThisWorkbook.ActiveSheet.Cells(n, 1).EntireRow.Delete
        End If
Next i
    End Sub**

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Вы можете попробовать следующее:

Sub RemoveRows5()
    
    Dim LastRow As Long, i As Long
    
    With ThisWorkbook.ActiveSheet

        .Cells.ClearFormats

        LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
          
        For i = LastRow To 1 Step -1
            If InStr(1, .Cells(i, 1).Text, "<>", vbTextCompare) > 0 Then
                .Row(i).EntireRow.Delete
            End If
        Next i
    
    End With
    
End Sub
0 голосов
/ 04 августа 2020

Ваш синтаксис неверен, ваш код должен быть:

Sub RemoveRows5()

ThisWorkbook.ActiveSheet.Cells.ClearFormats
Dim n As Long, i As Long
n = Range("A" & Rows.Count).End(xlUp).Row
  
For i = n To 1 Step -1
    If InStr(1, ThisWorkbook.ActiveSheet.Cells(i, 1).Text, "<>", vbTextCompare) > 0 Then
        ThisWorkbook.ActiveSheet.Cells(i, 1).EntireRow.Delete
    End If
Next i
End Sub

Обратите внимание, что правильный синтаксис для al oop - For x = i To j Step k, где x - это числовая c переменная, которая будет сохранить значение от i до j с размером шага k.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...