Я полагаю, TextBox5 является firstName, а TextBox6 является LastName?
Вы просто хотите проверить, присутствует ли ( If ) FirstName, если это так, найдите его. В противном случае ( ElseIF ) проверьте LastName и, если таковой имеется, ищите вместо этого? и др c. Кроме того, мы можем добавить окончательный регистр ( Else ), когда 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