0

这不是在 Excel 中定义数组的常见情况。它是在 VBA 中定义的,我需要在给定 Excel 单元格中找到的值的情况下找到正确的值。在单元格 A1 中,我的值为 DE000C5RQDA9。在 B1 中,我想返回 RXM1。

实际的数组更多的是(0 到 9,0 到 XX)所以不要认为字典是可行的。XX 动态变化。

例子

 Sub Test()

 Dim arr(0 To 1, 0 To 1)
 arr(0,0) = "RXM1"
 arr(0,1) = "UBM1"
 arr(1,0) = "DE000C5RQDA9"
 arr(1,1) = "DE000C5RQDD3"
 
With Application
   ActiveSheet.Cells(1, 2) = .Index(arr(0), .Match(ActiveSheet.Cells(1,1), arr(1), 0))
End with

 End sub
4

1 回答 1

3

您可以使用 Application.Index 来获取要在 INDEX/MATCH 中使用的列。

相同的想法可以用于行。

Sub Test()
Dim arr(0 To 1, 0 To 1)
Dim col1 As Variant
Dim col2 As Variant

    arr(0, 0) = "RXM1"
    arr(0, 1) = "UBM1"
    arr(1, 0) = "DE000C5RQDA9"
    arr(1, 1) = "DE000C5RQDD3"

    col1 = Application.Index(arr, 1)
    col2 = Application.Index(arr, 2)
    With Application
        ActiveSheet.Cells(1, 2) = .Index(col1, .Match(ActiveSheet.Cells(1, 1), col2))
    End With

End Sub
于 2021-04-13T10:47:49.983 回答