尝试在vba中创建函数以执行索引匹配功能。我正在引用一个excel表,并且我想引用标题而不是列号。 下面是我创建并工作的工作表。
=VLOOKUP(C4, Table2, MATCH(C5,Table2[#Headers],0), 0)
当我将此功能放入VBA时,无法使阵列正常工作。我认为...
MATCH(C5,Table2[#Headers],0)
需要从下面这样的代码开始。
ActiveSheet.ListObjects("Table2").ListColumns ("d")
ActiveSheet.ListObject("Table2[d]")
答案 0 :(得分:0)
您可以通过其标题引用ListColumn
,然后使用其Index
属性。
如果您的查找值位于C4
中,而列名位于C5
中,请尝试执行以下操作:
Sub Test()
With Sheet1
Dim myTbl As ListObject
Set myTbl = .ListObjects("Table2")
Dim indx As Integer
indx = myTbl.ListColumns(.Range("C5").Value).Index
Dim result As Variant
result = Application.VLookup(.Range("C4").Value, myTbl.Range, indx, 0)
MsgBox result
End With
End Sub
样本表和数据: