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
是您所需要的。