VBA中的filter输出的UBound值

我想search一个数组的一个值,我一直在尝试使用过滤函数做到这一点,但是当我写一个小的子来testing这个,它不工作,我得到一个“types不匹配”的错误。

任何人都可以告诉我这个代码有什么问题吗?

Dim range1() As Variant range1 = Sheet4.range("B3:B7") Dim string1 As String string1 = "hello" If UBound(Filter(range1, string1)) >= 0 Then Sheet4.range("A1").Value = "Hello exists." Else Sheet4.range("A1").Value = "Hello does not exist." End If 

你好在选定的范围内出现一次,所以Ubound函数的结果应该是0,对不对?

您需要使用转置创build一个范围外的一维数组。 看到这个链接

 range1 = Application.Transpose(Sheet4.Range("B3:B7")) 

根据MSDN 筛选function需要一维string数组。

需要。 要search的string的一维数组