2015-10-19 154 views
0

我想要一个函数采用两个参数,一个搜索单元格和一个要搜索的单元格,其中搜索单元格包含以逗号分隔的列表。我想要测试每个元素以查看它是否位于“搜索”单元格中。例如:“运行时错误”424“:Object Required”

List_of_String: word1, word2, word3 
Where_to_Search: bbbbbword1 'Return TRUE' 
Where_to_Search: bbbbhhhhhmmmmm 'Return FALSE 

我已经写:

Function Search_in_String(List_of_Strings_to_Search As String, Where_to_Search As String) 

String_array = Split(List_of_Strings_to_Search, ",") 
Dim is_in_num As Integer 
Dim is_in As Boolean 

is_in = False 

For i = 0 To (UBound(String_array) - 1) 
    is_in_num = InStr(Where_to_Search, Trim(String_array(i))) 
    If is_in_num > 0 Then is_in = True 
    If is_in Then Exit For 
Next i 

Search_in_String = is_in 
End Function 



Sub test() 
    MsgBox Search_in_String(BJ7.Value, Bk7.Value) 
End Sub 

我使用测试我Search_in_String功能(我相信也没有工作)的测试()函数。当我(F8)步骤我得到的错误:

Run-Time error '424': Object required

+3

'BJ7'和'Bk7'不是对象。将'Option Explicit'放置在代码模块的顶部。 – GSerg

+1

@Gserg谢谢。我已经完成了这个工作,现在正在用BJ7和BK7获得'Variable not defined'。如果将它们改为'范围(“BJ7”),值和范围(“BK7”)。值,我得到'类型不匹配' – pokeairguy

回答

2

更改子测试()这个:

Sub test() 
    MsgBox Search_in_String(Range("BJ7").Value, Range("BJ7").Value) 
End Sub 
+0

嘿,谢谢。我刚刚尝试这样做,现在我得到了'运行时错误'13':类型不匹配' – pokeairguy

+0

女巫行代码? –

+0

在行'MsgBox Search_in_String(Range(“BK7”)。Value,Range(“BJ7”)。Value)' – pokeairguy