Добрый день, имеется умная таблица Необходимо найти строку в которой совпадает Фамилия, Имя, Отчество я нашел решение с помощью автофильтра [vba]
Код
Private Sub FindLine(family As String, name As String, lastname As String) Dim rng As Range ThisWorkbook.Worksheets("List").AutoFilterMode = False With ThisWorkbook.Worksheets("List").ListObjects("tblOrder") _ .Range(.ListColumns("Фамилия").DataBodyRange, .ListColumns("Имя").DataBodyRange, .ListColumns("Отчество").DataBodyRange, .ListColumns("Дата рождения").DataBodyRange) .AutoFilter Field:=1, Criteria1:="=family" .AutoFilter Field:=2, Criteria1:="=name" .AutoFilter Field:=3, Criteria1:="=lastname" End With
With ThisWorkbook.Worksheets("List").ListObjects("tblOrder") On Error Resume Next Set rng = .ListColumns("Фамилия").DataBodyRange.Rows.SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With
If Not rng Is Nothing Then MsgBox rng.Row End If
End Sub
[/vba] Однако код не рабочий, можно ли мне его поправить?
Добрый день, имеется умная таблица Необходимо найти строку в которой совпадает Фамилия, Имя, Отчество я нашел решение с помощью автофильтра [vba]
Код
Private Sub FindLine(family As String, name As String, lastname As String) Dim rng As Range ThisWorkbook.Worksheets("List").AutoFilterMode = False With ThisWorkbook.Worksheets("List").ListObjects("tblOrder") _ .Range(.ListColumns("Фамилия").DataBodyRange, .ListColumns("Имя").DataBodyRange, .ListColumns("Отчество").DataBodyRange, .ListColumns("Дата рождения").DataBodyRange) .AutoFilter Field:=1, Criteria1:="=family" .AutoFilter Field:=2, Criteria1:="=name" .AutoFilter Field:=3, Criteria1:="=lastname" End With
With ThisWorkbook.Worksheets("List").ListObjects("tblOrder") On Error Resume Next Set rng = .ListColumns("Фамилия").DataBodyRange.Rows.SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With
If Not rng Is Nothing Then MsgBox rng.Row End If
End Sub
[/vba] Однако код не рабочий, можно ли мне его поправить?Sashagor1982
With ThisWorkbook.Worksheets("List").ListObjects("tblOrder").Range .AutoFilter Field:=3, Criteria1:=family .AutoFilter Field:=4, Criteria1:=name .AutoFilter Field:=5, Criteria1:=lastname End With
[/vba]
Так не подойдёт? [vba]
Код
With ThisWorkbook.Worksheets("List").ListObjects("tblOrder").Range .AutoFilter Field:=3, Criteria1:=family .AutoFilter Field:=4, Criteria1:=name .AutoFilter Field:=5, Criteria1:=lastname End With