我想直接从VBA编辑器创建一个vlookup(不是指单元格)。 我已经尝试过2D数组,但它不起作用。
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编辑器中直接完成。
答案 0 :(得分:2)
这是一个很好的例子,为什么你应该总是使用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