我正在循环查找部分雇主姓名的任何实例。我使用Find功能搜索用户输入的内容。我的问题是它找到第一个值和每个重复的值匹配第一个找到的值,但忽略任何其他值。例如:
Bobs蛋糕店
Bobs Funeral Home
Bobs蛋糕店
它会添加蛋糕店的两个实例,但忽略了殡仪馆。如果殡仪馆首先出现,它会忽略蛋糕店。发生了什么事?
Cells(1, foundColumn).Activate
If Not IsNumeric(rowWanted) Then
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = Cells.Find(rowWanted, LookIn:=xlValues) Then
rowFound = ActiveCell.Row
Search_Results_Listbox.AddItem (ActiveCell.Value)
End If
ActiveCell.Offset(1, 0).Activate
Loop
End If
答案 0 :(得分:3)
您的代码中存在许多错误 - 您正在尝试做一些非常简单的事情,因此最好回到使用Find
的文档示例,尤其是 ,FindNext
这样的事情对你来说应该会更好:
Option Explicit
Sub Test()
Dim searchColumn As Range, itemFound As Range
Dim firstFindAddress As String
Set searchColumn = ThisWorkbook.Worksheets("Sheet1").Range("A:A") 'change to employer's name column
Set itemFound = searchColumn.find(What:="Bobs", LookAt:=xlPart, LookIn:=xlValues)
If Not itemFound Is Nothing Then
firstFindAddress = itemFound.Address
Do
Search_Results_Listbox.AddItem itemFound.Value
Set itemFound = searchColumn.FindNext(itemFound)
Loop While Not itemFound Is Nothing And itemFound.Address <> firstFindAddress
End If
End Sub