首页 > 解决方案 > Excel 用户表单搜索过滤器不带并显示数据

问题描述

我有一个用户表单,我在一个名为“Hoja4”的表格中查找一些个人数据。在其中一个页面中,我可以添加更多数据,将其发送到另一个名为“Hoja1”的工作表。因此,当我转到另一个选项卡时,我按 ID 或姓氏搜索以过滤该数据,有时它会带给我那个人的数据,但大多数情况下它不会。对于搜索和自动完成一些只是名称不同但在用户表单内的不同页面中的文本框,它的代码相同。奇怪的是,我正在使用两个不同的代码寻找相同的数据,但它只能在一个上正常工作,而在另一个上几乎不工作。

当我按下搜索时它会带来什么?它带来了存储该数据的列的名称。我把代码留在这里。

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

标签: excelvba

解决方案


推荐阅读