Excel Userform Search фильтр не приносит и отображает данные - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть пользовательская форма, где я ищу некоторые личные данные на листе под названием "Hoja4". На одной из страниц я могу добавить еще несколько данных, которые будут отправлены на другой лист, где лист называется «Hoja1». Поэтому, когда я go перехожу на другую вкладку, где я ищу по идентификатору или по фамилии, чтобы отфильтровать эти данные, иногда это приводит меня к данным этого человека, но в основном это не так. Это один и тот же код для поиска и автозаполнения некоторых текстовых полей, которые просто отличаются по именам, но на разных страницах внутри пользовательской формы. Странно, что я ищу одни и те же данные с двумя разными кодами, но он корректно работает только на одном и едва на другом.

Что это приносит, когда я нажимаю поиск? Он приносит имена столбцов, где хранятся эти данные. Я оставляю здесь код.

Private Sub btnBuscar2_Click()
    'declarar las variables
    Dim FindRow
    Dim i As Integer
    Dim cRow As String

    'error block
    On Error GoTo errHandler:

    'Filtrar solo por Legajo
    If Me.BLeg2 <> "" Then

        'Encontrar la fila con la data
        cRow = Me.BLeg2.Value
        Set FindRow = Hoja4.Range("A:A").Find(What:=cRow, LookIn:=xlValues)


        'agregar los valores a las casillas correspondientes
        Leg2.Value = FindRow.Offset(0, 0)
        Fech2.Value = FindRow.Offset(0, 4)
        Ape2.Value = FindRow.Offset(0, 1)
        Nomb2.Value = FindRow.Offset(0, 2)
        Pues2.Value = FindRow.Offset(0, 3)

        'Filtrar solo por Apellido
    ElseIf Me.BApe2 <> "" Then

        'Encontrar la fila con la data
        cRow = Me.BApe2.Value
        Set FindRow = Hoja4.Range("B:B").Find(What:=cRow, LookIn:=xlValues)


        'agregar los valores a las casillas correspondientes
        Leg2.Value = FindRow.Offset(0, -1)
        Fech2.Value = FindRow.Offset(0, 3)
        Ape2.Value = FindRow.Offset(0, 0)
        Nomb2.Value = FindRow.Offset(0, 1)
        Pues2.Value = FindRow.Offset(0, 2)
    Else
        MsgBox "Por favor, ingresar un Legajo o un Apellido"
    End If

    'error block
    On Error GoTo 0
    Exit Sub
errHandler:
    MsgBox "Error! Verificar los datos ingresados, porque no son correctos!" & vbCrLf & Err.Description

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...