2016-11-29 17 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

あなたは(ListObjectある)Excelの表を使用している場合、あなたはそのように暗くする必要があります。テーブルをワークシート上の範囲として扱い、提案したとおりに参照することもできますし、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 
関連する問題