【问题标题】:Wildcard vlookup in arrays - VBA数组中的通配符查找 - VBA
【发布时间】:2021-12-05 08:02:25
【问题描述】:

我在将值从一个数组查找到另一个数组时遇到问题。

数组是:


我的代码导致错误 2042:

Dim arr9 As Variant
ReDim arr9(LBound(arr7) + UBound(arr7))
i = 0
For i = LBound(arr7) To UBound(arr7) Step 1
arr9(i) = Application.VLookup(Left(arr7(i), 5) & "*", Arr, 1, 0)
Next i

我需要的是从 arr7 中找到项目,即 Arr 中的 arr7(0) = zch20 并将相应的值从 arr 分配给 arr9。只需查找前 5 个字符,因为它们是 arr 和 arr7 的共同字符,但需要将全名字符串插入 arr9。

谢谢。

【问题讨论】:

    标签: arrays excel vba vlookup


    【解决方案1】:

    VLOOKUP 是一个工作表函数,用于单元格范围(或工作表 tables),但不适用于 VBA arrays

    Filter 是一个类似的 VBA 函数,您可能会更幸运。

    Filter(sourcearray, match, [ include, [ compare ]])


    更多信息:

    【讨论】:

    • 谢谢,经过测试,它确实找到了我需要的东西,但是它正在将结果插入“子数组”arr(9)(0)(0)。
    • @Thayskills 您可以访问过滤器的第一个元素,并使用Filter(sourcearray, match, [ include, [ compare ]])(0) 确保安全
    猜你喜欢
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多