2016-11-29 63 views
0

我在我的工作表中有一個名爲tblMetaData的表。我創建了一個名爲rngTblMetaData的Range變量來引用此表。是否可以使用變量引用此表中的列?例如,在下面的代碼中,我想引用表「tblMetaData」中標題爲「Track Name」的列。我通常會用"WsMetaData.Range("tlbMetaData[Track Name]")"來做到這一點。是否可以通過使用「rngTblMetaData」變量來縮短這一點?謝謝!Excel VBA:是否可以使用表的變量名引用表中的列?

例:

Public Wb        As Workbook 
Public WsMetaData      As Worksheet 

Public rngTblMetaData     As Range 

Sub SetVariables() 

Set Wb = ThisWorkbook 
Set WsMetaData = Wb.Sheets("MetaData") 

Set rngTblMetaData = WsMetaData.Range("tlbMetaData") 

回答

0

如果您正在使用Excel表格(這是一個的ListObject)的工作,那麼你應該暗淡它是這樣。您可以將表格視爲工作表上的範圍,並按照您的建議引用它,也可以直接使用ListObject,但這意味着您要按數字引用列,因此必須搜索標題:

Public Wb As Workbook 
Public WsMetaData As Worksheet 
Public tblMetaData As ListObject 
Public columnData As Range 

Sub SetVariables() 

    Set Wb = ThisWorkbook 
    Set WsMetaData = Wb.Sheets("MetaData") 
    Set tblMetaData = WsMetaData.ListObjects("tblMetaData") 

    Set columnData = WsMetaData.Range("tblMetaData[Track Names]") 
    'or 
    Dim columnNumber As Long 
    columnNumber = WorksheetFunction.Match("Track Names", tblMetaData.HeaderRowRange, 1) 
    Set columnData = tblMetaData.ListColumns(columnNumber).DataBodyRange 

End Sub 
相關問題