Getting type mismatch when looking up string in array
我有一些代码可以从电子表格中提取字符串,并在数组中查找字符串的索引值。我注意到,如果我将字符串保留为1个字符,则代码可以正常工作。如果我实际上尝试运行它来查找单词,即使字符串内部明确存在字符串,也会出现类型不匹配错误。任何帮助,将不胜感激。我粘贴了下面的代码的简化版本,它仍然会导致相同的错误。
我尝试将数组变暗为变量或字符串。我尝试使用空格使数组中的所有字符串都具有相同的长度。
1 2 3 4 5 6 7 8 9 10 | Sub myArray_ISbroke() Dim arraysSuck: arraysSuck = Split("HI,HELLO,TEST1,TEST2,T3",",") MsgBox Application.Match("HI", arraysSuck) MsgBox Application.Match("HELLO", arraysSuck) MsgBox Application.Match("TEST1", arraysSuck) MsgBox Application.Match("TEST2", arraysSuck) MsgBox Application.Match("T3", arraysSuck) End Sub |
我希望味精盒会带有1、2、3、4和5。我在'1'之后得到错误13。
您缺少最后一个参数,即匹配类型。请参阅此处的文档。
说:
If match_type is 1, Match finds the largest value that is less than or equal to lookup_value. Lookup_array must be placed in ascending order: ...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE.
If match_type is 0, Match finds the first value that is exactly equal to lookup_value. Lookup_array can be in any order. Note that Match is case-insensitive.
If match_type is -1, Match finds the smallest value that is greater than or equal to lookup_value. Lookup_array must be placed in descending order: TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ..., and so on.
If match_type is omitted, it is assumed to be 1.
修改后的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | Option Explicit Sub UpdatedExample() Dim arraysSuck: arraysSuck = Split("HI,HELLO,TEST1,TEST2,T3",",") MsgBox Application.Match("HI", arraysSuck, 0) MsgBox Application.Match("HELLO", arraysSuck, 0) MsgBox Application.Match("TEST1", arraysSuck, 0) MsgBox Application.Match("TEST2", arraysSuck, 0) MsgBox Application.Match("T3", arraysSuck, 0) End Sub |