簡體   English   中英

在vba中以數組形式使用表(索引,匹配,vlookup函數)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM