VBA中过滤器输出的UBound值

时间:2014-07-31 09:54:14

标签: excel vba

我想在一维数组中搜索一个值,我一直在尝试使用过滤器函数来做这个,但是当我写一个小子来测试它时,它不起作用我得到一个“类型不匹配“错误。

有人能告诉我这段代码有什么问题吗?

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

Hello在所选范围内出现一次,因此Ubound函数的结果应为0,对吗?

1 个答案:

答案 0 :(得分:4)

您需要使用转置来创建范围之外的一维数组。 See this link

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

根据MSDN 过滤器功能需要一维字符串数组。

  

必需。 要搜索的一维 字符串数组