VBA过滤函数
VBA Filter function
我做错了什么?
Dim Found() As Variant
Dim Found1 As Variant
Found = Application.Transpose(Application.Evaluate("=IF((ID=""" & sString1 & """)*(No=Value(""" & sString2 & """)),ROW(ID),""z"")"))
Found1 = Filter(Found, "z", False)
我有一个很好的 "Found" 数组,其中包含所有 "z":s 和一个有效命中。但是,当我尝试使用 Filter 函数去除 "z" 时,出现 "mismatch" 错误?。为什么?
ID和No是"named ranges"
ID是字符串,No是数字
您不需要变体数组,您只需要恰好是数组的变体。
Dim Found() As Variant
Dim Found1 As Variant
Found = Application.Transpose([A1:A5])
Found1 = Filter(Found, "z", False)
这就是我现在所在的位置
Dim Found() As Variant
Found = Application.Evaluate("=IF((ID=""" & sString1 & """)*(No=Value(""" & sString2 & """)),ROW(ID),""z"")")
i = 1
While Found(i, 1) = "z"
i = i + 1
Wend
如果我不能使用过滤器,那么也不需要转置,我只是遍历数组直到找到我的匹配项。我永远只有一个!我最多要处理 5000 行,因此时间会因情况而异。
我做错了什么?
Dim Found() As Variant
Dim Found1 As Variant
Found = Application.Transpose(Application.Evaluate("=IF((ID=""" & sString1 & """)*(No=Value(""" & sString2 & """)),ROW(ID),""z"")"))
Found1 = Filter(Found, "z", False)
我有一个很好的 "Found" 数组,其中包含所有 "z":s 和一个有效命中。但是,当我尝试使用 Filter 函数去除 "z" 时,出现 "mismatch" 错误?。为什么?
ID和No是"named ranges" ID是字符串,No是数字
您不需要变体数组,您只需要恰好是数组的变体。
Dim Found() As Variant
Dim Found1 As Variant
Found = Application.Transpose([A1:A5])
Found1 = Filter(Found, "z", False)
这就是我现在所在的位置
Dim Found() As Variant
Found = Application.Evaluate("=IF((ID=""" & sString1 & """)*(No=Value(""" & sString2 & """)),ROW(ID),""z"")")
i = 1
While Found(i, 1) = "z"
i = i + 1
Wend
如果我不能使用过滤器,那么也不需要转置,我只是遍历数组直到找到我的匹配项。我永远只有一个!我最多要处理 5000 行,因此时间会因情况而异。