VBA Excel数据表单(搜索按钮上的Else If语句)
我有一个代码,当您输入和ID并按search时,它会正确显示数据。但是,如果你想通过ID查找姓氏,它不会带来任何东西。我认为我做错了else-if语句,但还不能找到错误VBA Excel数据表单(搜索按钮上的Else If语句),excel,vba,if-statement,Excel,Vba,If Statement,我有一个代码,当您输入和ID并按search时,它会正确显示数据。但是,如果你想通过ID查找姓氏,它不会带来任何东西。我认为我做错了else-if语句,但还不能找到错误 Private Sub cmdBuscar_Click() 'declarar las variables Dim FindRow Dim i As Integer Dim cRow As String 'error block On Error GoTo errHandler: 'Filtrar solo por Lega
Private Sub cmdBuscar_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.TextBox6 = "" Then
'Encontrar la fila con la data
cRow = Me.TextBox5.Value
Set FindRow = Hoja4.Range("A:A").Find(What:=cRow, LookIn:=xlValues)
'agregar los valores a las casillas correspondientes
Me.TextBox7.Value = FindRow
Me.TextBox8.Value = FindRow.Offset(0, 1)
Me.TextBox9.Value = FindRow.Offset(0, 2)
Me.TextBox10.Value = FindRow.Offset(0, 3)
Me.TextBox11.Value = FindRow.Offset(0, 4)
'Filtrar solo por Apellido
Else
If Me.TextBox6 = "" Then
'Encontrar la fila con la data
cRow = Me.TextBox6.Value
Set FindRow = Hoja4.Range("B:B").Find(What:=cRow, LookIn:=xlValues)
'agregar los valores a las casillas correspondientes
Me.TextBox7.Value = FindRow
Me.TextBox8.Value = FindRow.Offset(0, 1)
Me.TextBox9.Value = FindRow.Offset(0, 2)
Me.TextBox10.Value = FindRow.Offset(0, 3)
Me.TextBox11.Value = FindRow.Offset(0, 4)
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 If
End Sub
我假设TextBox5是名字,TextBox6是姓氏 您只需要检查(如果)FirstName是否存在,如果存在,请搜索该名称。否则(ElseIF),检查姓氏,如果存在,则搜索该姓氏?等等。此外,我们可以添加最后一个案例(其他)FirstName和LastName均为空,您犯了错误,请输入其中一个 您只需要一个带有这三个条件的If语句(一个嵌套在另一个中) 试试这个:
Private Sub cmdBuscar_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.TextBox5 <> "" Then
'Encontrar la fila con la data
cRow = Me.TextBox5.Value
Set FindRow = Hoja4.Range("A:A").Find(What:=cRow, LookIn:=xlValues)
'agregar los valores a las casillas correspondientes
Me.TextBox7.Value = FindRow
Me.TextBox8.Value = FindRow.Offset(0, 1)
Me.TextBox9.Value = FindRow.Offset(0, 2)
Me.TextBox10.Value = FindRow.Offset(0, 3)
Me.TextBox11.Value = FindRow.Offset(0, 4)
'Filtrar solo por Apellido
ElseIf Me.TextBox6 <> "" Then
'Encontrar la fila con la data
cRow = Me.TextBox6.Value
Set FindRow = Hoja4.Range("B:B").Find(What:=cRow, LookIn:=xlValues)
'agregar los valores a las casillas correspondientes
Me.TextBox7.Value = FindRow
Me.TextBox8.Value = FindRow.Offset(0, 1)
Me.TextBox9.Value = FindRow.Offset(0, 2)
Me.TextBox10.Value = FindRow.Offset(0, 3)
Me.TextBox11.Value = FindRow.Offset(0, 4)
Else
MsgBox "Please enter FirstName or LastName"
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
Private Sub cmdBuscar\u Click()
'声明器las变量
昏暗的芬德罗
作为整数的Dim i
乌鸦如弦
'错误块
错误转到错误处理程序时:
“Filtrar solo por Legajo
如果是Me.TextBox5“”,则
“数据中心”
cRow=Me.TextBox5.Value
设置FindRow=Hoja4.Range(“A:A”).Find(What:=cRow,LookIn:=xlValues)
“agregar los valores a las casillas correspondenes
Me.TextBox7.Value=FindRow
Me.TextBox8.Value=FindRow.Offset(0,1)
Me.TextBox9.Value=FindRow.Offset(0,2)
Me.TextBox10.Value=FindRow.Offset(0,3)
Me.TextBox11.Value=FindRow.Offset(0,4)
“Filtrar solo por Apellido
如果是我,文本框6“那么
“数据中心”
cRow=Me.TextBox6.Value
设置FindRow=Hoja4.Range(“B:B”).Find(What:=cRow,LookIn:=xlValues)
“agregar los valores a las casillas correspondenes
Me.TextBox7.Value=FindRow
Me.TextBox8.Value=FindRow.Offset(0,1)
Me.TextBox9.Value=FindRow.Offset(0,2)
Me.TextBox10.Value=FindRow.Offset(0,3)
Me.TextBox11.Value=FindRow.Offset(0,4)
其他的
MsgBox“请输入FirstName或LastName”
如果结束
'错误块
错误转到0
出口接头
错误处理程序:
MsgBox“错误!检查入口数据,无子纠正!”&vbCrLf和错误说明
端接头
对不起,我只想按姓氏查找,不能同时按姓氏和姓氏查找。(一个过滤器或另一个,不是两个)非常感谢。是的,是的!另一个你可能知道的问题。在应该显示ID的框中,显示姓氏,等等。。。我该如何解决这个问题?尝试添加另一组FindRow2,但无法解决问题。是从错误的专栏带来的。偏移量应该先是(0,-1),然后是(0,0),依此类推!很高兴听到!很乐意帮忙。只是一个小评论,让人们更容易帮助您解决堆栈溢出问题。下次你提问时,试着提供更多的背景信息,以便我们知道什么是TextBox5和TextBox6,以及你的数据中哪一列有ID、FirsName等。一般来说,请检查此项():)