Опитвам се да търся колона Б за три различни струни. Трябва ми да потърся град, държава и пощенски код, и ако някоя от колоните има съвпадащи градове, състояния или ципове, тогава се нуждая от премахването на този ред.
Също така имам настройка да премахна ред, ако има 0 в началото на поле в колона D, но не можах да го направя и за работа.
Ето кода, който имам досега:
Sub Removal()
Dim i As Long
For i = Range("B" & Rows.Count).End(xlUp).Row To 1 Step -1
If Left(Range("D" & i), 1) = "0" Then
Rows(i).Delete
Else
Select Case LCase(Range("B" & i))
Case Is = "Orlando", "FL", "37941"
Rows(i).Delete
End Select
End If
Next i
End Sub
Кодът обаче не прави нищо.
Отговори:
1 за отговор № 1Това е, защото правите LCase
на стойностите в колона Б, но в сравнение с TitleCase ("Orlando"
) и UpperCase "FL"
думи в изявлението за Вашия случай.
Променете кода си така. Изпробвах го на моя локален Excel и работи.
UPDATE Също така промених кода, за да се справя с случаите, които споменахте в коментарите тук.
Sub Removal()
Dim i As Long, searchString As String
For i = Range("B" & Rows.Count).End(xlUp).Row To 1 Step -1
" if a row is marked for deletion, delete it and continue.
If Left(Range("D" & i), 1) = "0" Then
Rows(i).Delete
" skip to next row
GoTo NextRow
End If
searchString = LCase(Range("B" & i))
If (InStr(1, searchString, "orlando") > 0) Or _
(InStr(1, searchString, "fl") > 0) Or _
(InStr(1, searchString, "37941") > 0) Then
Rows(i).Delete
End If
NextRow:
Next i
End Sub