Я намагаюся шукати стовпець B для 3 різних рядків. Мені потрібно, щоб шукати місто, штат і zip, і якщо будь-яка з стовпців має відповідність міста, штату або zips, то мені потрібен цей рядок.
У мене також є налаштування для видалення рядка, якщо є 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
на значеннях у стовпці B, але порівняно з TitleCase ("Orlando"
) і UpperCase "FL"
слова у вашій заяві Case.
Змініть свій код так, як ви. Я перевірив його на своєму локальному 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