在Excel中查找函数:按关键字搜索

时间:2014-10-01 09:05:13

标签: excel forms visual-studio-2010 excel-vba vba

我有一个表单,您可以在其中介绍产品代码并返回其描述和价格。我想添加另一个搜索条件,以便能够按关键字查找产品,在“说明”列中搜索。我不确定“find”函数是否允许这样做,或者我是否需要使用“vlookup”函数。我在“vlookup”中发现的问题是,我希望能够继续在列中搜索剩余的匹配项。这是我目前正在处理的代码:

Option Explicit
Dim Llave As Boolean
Private Sub BtnBuscar_Click()
If Not Sheet1.Range("C1:C211").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
If Llave Then
  Cells.FindNext(After:=ActiveCell).Select
  Fila.Caption = ActiveCell.Row
  Dato1.Caption = ActiveCell.Value
  Dato2.Caption = ActiveCell.Offset(0, 1).Value
  Dato3.Caption = ActiveCell.Offset(0, 2).Value
  Dato4.Caption = ActiveCell.Offset(0, 4).Value

Else
 Sheet1.Range("C1:C211").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole).Select
 Fila.Caption = Sheet1.Range("C:C").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole).Row
 Dato1.Caption = Sheet1.Range("C:C").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole).Value
 Dato2.Caption = Sheet1.Range("C:C").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Value
 Dato3.Caption = Sheet1.Range("C:C").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 2).Value
 Dato4.Caption = Sheet1.Range("C:C").Find(Me.DatoBuscado, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 4).Value
 Llave = True
End If

Else
  Dato1.Caption = "   "
  Dato2.Caption = "   "
  Dato3.Caption = "   "
  Dato4.Caption = "   "
  Fila.Caption = "    "
  MsgBox "Dato Inexistente", 64, ""
End If
End Sub



Private Sub Dato1_Click()

End Sub

Private Sub Dato3_Click()

End Sub

Private Sub Fila_Click()

End Sub

Private Sub UserForm_Initialize()
 Llave = False
End Sub

所以这是一个搜索表单(Userform),当我点击工作表上的按钮(shee1)时会弹出它。

提前多多感谢!

纳塔利娅。

1 个答案:

答案 0 :(得分:0)

我建议在DO UNTIL循环中使用Find,直到find返回的范围为空,并使用该循环填充列表框。然后用户可以选择想要的匹配。