首页 > 解决方案 > 将 Match 和 Index 函数与在 VBA 中创建和填充的数组一起使用

问题描述

我在 VBA 中创建并定义了一个数组:

A_Array(2,4) As Variant (Option Base 1)

我想将第二列中的数字与特定条件进行匹配,例如,第二列中的哪一行包含数字“1”。找到匹配项后,我想使用第一列中的相应值来创建变量。当我使用索引和匹配函数时,如何指定范围,在这种情况下是 VBA 创建的数组的整个列?

Variable = Worksheet.Function.Index(A_Array, Worksheet.Function.Match(1, **?Second_ Column of A_Array?**,0),**?First Column of A_Array?**)

如何在上面的 Match 函数中指定 A_Array 的第一列,以及如何在 Index 函数中指定 A_Array 的第二列。

提前感谢您的帮助。

标签: arraysvbaindexingmatch

解决方案


只需循环行并测试,使用变体数组会很快。

Dim A_Array(2, 4) As Variant
'fill array

Dim i As Long
For i = LBound(A_Array, 1) To UBound(A_Array, 1)
    If A_Array(i, 2) = 1 Then
        variable = A_Array(i, 1)
        Exit For
    End If
Next i

推荐阅读