关于excel:在数组中查找字符串时获取类型不匹配

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