arrays - VBA数组Vlookup

标签 arrays excel vba vlookup

我想直接从 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

MSDN Option Explicit

关于arrays - VBA数组Vlookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872143/

相关文章:

具有可变大小行的 C++ 二维数组

arrays - 维护 bash 关联数组的插入顺序

javascript - 使用 VBA 显示 javascript 警报

vba - 如何仅删除一系列单元格的格式...也就是说,保持内容不变

excel - 形状复制粘贴时间问题 - Excel VBA

Javascript - 从页面中提取文本,然后用它构建一个数组

excel - VBA如何在有Windows句柄时使用FindWindowEx

excel - For Loop 在 excel VBA 中没有完全循环

python - 使用xlsxwriter将自定义类类型数据写入excel TypeError : Unsupported type <class '__main__.node' > in write()

arrays - 同一属性的属性过程定义不一致[使用数组]