我想直接从 VBA 编辑器创建 vlookup(不引用单元格)。 我尝试过二维数组,但不起作用。
Sub vl()
Dim typ(1 To 5, 1 To 2) As Variant
typ(1, 1) = A
typ(2, 1) = B
typ(3, 1) = C
typ(4, 1) = D
typ(5, 1) = E
typ(1, 2) = 50
typ(2, 2) = 40
typ(3, 2) = 30
typ(4, 2) = 20
typ(5, 2) = 10
MsgBox Application.WorksheetFunction.VLookup("A", typ, 2, 0)
End Sub
我希望能得到 50 分。
我知道这可以使用单元格范围来完成,但希望直接在 VBA 编辑器中完成。
最佳答案
这是一个很好的例子,说明为什么您应该始终使用Option Explicit
。您的代码可以工作,但由于您没有 Option Explicit
,VBEditor 认为 A
是一个变量,而不是 String
。因此,它不会在 MessageBox 上提供任何内容。
这按预期工作:
Option Explicit
Sub vl()
Dim typ(1 To 5, 1 To 2) As Variant
typ(1, 1) = "A"
typ(2, 1) = "B"
typ(3, 1) = "C"
typ(4, 1) = "D"
typ(5, 1) = "E"
typ(1, 2) = 50
typ(2, 2) = 40
typ(3, 2) = 30
typ(4, 2) = 20
typ(5, 2) = 10
MsgBox Application.WorksheetFunction.VLookup("A", typ, 2, 0)
End Sub
关于arrays - VBA数组Vlookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872143/