Eu estou tentando pesquisar coluna B para 3 seqüências de caracteres diferentes. Eu preciso dele para procurar por cidade, estado e zip e se qualquer uma das colunas tem correspondência cidade, estado ou zips, então eu preciso que linha removida.
Eu também tenho configurado para remover uma linha, se houver um 0 no início de um campo na coluna D, mas eu não consegui fazer isso funcionar.
Aqui está o código que tenho até agora:
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
O código não está fazendo nada embora.
Respostas:
1 para resposta № 1É porque você está fazendo LCase
nos valores da coluna B, mas comparando com o TitleCase ("Orlando"
) e UpperCase "FL"
palavras na sua declaração de caso.
Modifique seu código assim. Eu testei no meu Excel local e funciona.
ATUALIZAR Eu também modifiquei o código para lidar com os casos que você mencionou nos comentários aqui.
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