[英]Using tables in as arrays in vba, (index,match,vlookup functions)
嘗試在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]")
您可以通過其標題引用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
樣本表和數據:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.