У меня есть книга, настроенная для поиска столбца D в листе данных и перемещения соответствующих результатов в соответствующий лист. Оставшиеся результаты необходимо перенести на рабочий лист с именем other. Мне не удалось заставить strsearch переместить результаты, отличные от VZW, SPR, TMO, ATT, RZW, NG C, CEN, WPN, в другой лист. Что я облажался, что мешает этому работать?
Private Sub CommandButton4_Click()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim copyFrom As Range
Dim lRow As Long '<~~ Not Integer. Might give you error in higher versions of excel
Dim strSearch As String
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Data")
strSearch = "<>(VZW,ATT,SPR,TMO,RZW,WPN,CEN,NGC)"
With ws1
.AutoFilterMode = False
lRow = .Range("D" & .Rows.Count).End(xlUp).Row
With .Range("D1:D" & lRow)
.AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*"
Set copyFrom = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow
End With
.AutoFilterMode = False
End With
Set ws2 = wb1.Worksheets("Other")
With ws2
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lRow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Else
lRow = 1
End If
copyFrom.Copy .Rows(lRow)
End With
End Sub