Vba VB用户窗体:如何在列中搜索单词
我有一个基于列的搜索条件,但我必须键入该单元格中的每个单词,但我想搜索该单元格中的一个或几个单词。这可能吗Vba VB用户窗体:如何在列中搜索单词,vba,excel,Vba,Excel,我有一个基于列的搜索条件,但我必须键入该单元格中的每个单词,但我想搜索该单元格中的一个或几个单词。这可能吗 Public CallDetails As Collection Public Function Find_CallNumbers(NumberToFind As String) As Collection Dim rng_to_search As Range Dim rFound As Range Dim FirstAddress As String Dim FoundItem As
Public CallDetails As Collection
Public Function Find_CallNumbers(NumberToFind As String) As Collection
Dim rng_to_search As Range
Dim rFound As Range
Dim FirstAddress As String
Dim FoundItem As clsCallDetails
Set CallDetails = New Collection
With ThisWorkbook.Worksheets("Database")
Set rng_to_search = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
With rng_to_search
'Look for the first instance.
Set rFound = .Find(what:=NumberToFind, _
after:=.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchDirection:=xlNext)
If Not rFound Is Nothing Then
FirstAddress = rFound.Address
Do
Set FoundItem = New clsCallDetails 'Create a new instance of the class to hold the details.
With FoundItem
.Title = rFound.Offset(, 5)
.LoggedBy = rFound.Offset(, 1) 'Offset from column A by 1 column, so column B.
.CallNumber = rFound.Offset(, 2)
.DateField = rFound.Offset(, 3)
.OwnerField = rFound.Offset(, 4)
.Description = rFound.Offset(, 6)
.Solution = rFound.Offset(, 7)
.URLImage = rFound.Offset(, 8)
End With
CallDetails.Add FoundItem 'Add the class instance to our collection.
Set rFound = .FindNext(rFound) 'Look for the next value.
'Continue searching until we reach the top again.
Loop While Not rFound Is Nothing And rFound.Address <> FirstAddress
End If
End With
End Function
Public CallDetails作为集合
公共函数Find_CallNumbers(NumberToFind作为字符串)作为集合
Dim rng_至_搜索范围
暗光范围
将第一个地址设置为字符串
将FoundItem设置为clsCallDetails
Set CallDetails=新集合
使用此工作簿。工作表(“数据库”)
将rng_设置为_search=.Range(.Cells(1,1),.Cells(.Rows.Count,1).End(xlUp))
以
使用rng_到_搜索
"寻找第一个实例。
设置rFound=.Find(what:=NumberToFind_
之后:=.个单元格(1,1)_
LookIn:=xlValues_
看:=xlother_
搜索方向:=xlNext)
如果没有找到,那就什么都不是了
FirstAddress=rFound.Address
做
Set FoundItem=New clsCallDetails'创建类的新实例以保存详细信息。
带FoundItem
.Title=rFound.Offset(,5)
.LoggedBy=rFound.Offset(,1)'从A列偏移1列,因此B列。
.CallNumber=rFound.Offset(,2)
.DateField=rFound.Offset(,3)
.OwnerField=rFound.Offset(,4)
.Description=rFound.Offset(,6)
.Solution=rFound.Offset(,7)
.URLImage=rFound.Offset(,8)
以
CallDetails.Add FoundItem'将类实例添加到我们的集合中。
设置rFound=.FindNext(rFound)'查找下一个值。
“继续搜索,直到我们再次到达顶部。
未找到时循环为Nothing And rFound.Address FirstAddress
如果结束
以
端函数
这不是VB.NET代码。标签包含帮助您只选择相关单词的单词。好的,我的错。我已经删除了它不确定,但可能是LookAt:=xlPart
是您所需要的。