Несколько условий в операторе IF в Excel VBA "конец, если без блока, если" " - PullRequest
0 голосов
/ 21 марта 2019

я абсолютный новичок в VBA, я работаю над очисткой веб-журналов от ненужных данных (строки, содержащие .jpg, .gif, ...) Я нашел код, который делает именно то, что мне нужно, но я получаю ОШИБКА "Ошибка компиляции: конец, если без блока, если"

Sub clean() 
Dim r As Long, endRow As Long, pasteRowIndex As Long

endRow = 321085 

For r = endRow To 1 Step -1  
  Select Case Cells(r, Columns("F").Column).Value
        Case "*.jpg*", "*.JPG*", "*.gif*"
            Rows(r).Delete
        Case Else
            ' Do nothing...

    End Select

    End If
 Next r
End Sub

1 Ответ

0 голосов
/ 21 марта 2019

Чтобы использовать подстановочный знак с Select Case, вы можете использовать Like:

Sub clean() 
Dim r As Long, endRow As Long, pasteRowIndex As Long

' I assume your column F has the most data
endRow = Cells(Rows.Count, "F").End(xlUp).Row 

For r = endRow To 1 Step -1  
  Select Case True
        Case Cells(r, "F").Value Like "*.jpg*" or Cells(r, "F").Value Like "*.JPG*" or Cells(r, "F").Value Like "*.gif*"
            Rows(r).Delete
        Case Else
            ' Do nothing...
    End Select
 Next r
End Sub

Редактировать: Вероятно, есть лучший способ: поместить значения, которые вы хотите найти, в массив, а затем выполнить поиск в массиве, но приведенное выше должно работать с текущим методом.

...