2016-05-13 7 views
1

Excelを使用してテーブルを操作するマクロを作成しています。私は必要なものを行うためのコードを作成することができました。問題は、テーブル名が常に同じではない可能性があることです。一例として、VBAでアクティブなテーブルを参照する

Range("DATA_INPUT4[MFG Catalog]").Copy 

このコードだけで結構私のテーブル内のコピーMFGカタログの列が、テーブルには、常に「DATA_INPUT4」と命名される予定されていません。

私はアクティブなテーブルで動作させるためにいくつかのことを試してみましたが、私は近くにいるように感じていますが、進歩はありません。

Sub Copy_Active_Table() 

Dim activeTable As String 

activeTable = ActiveSheet.ListObjects(1).Name 

MsgBox activeTable 'To make sure it's pulling the correct table name 

Range("activeTable[MFG Catalog]").Copy 

End Sub 

これはおそらく完全に間違っているが、私はそれで行くよどこで見ることができます: 私がしようと試みてきました。

私はDim activeTable As ListObjectにしなければならないと感じていますが、私はそれも理解できませんでした。

この一見単純な問題は私を苦労させています。どんな助けも素晴らしいでしょう。コメントで回答

おかげで、

ブライアン

+0

はい、本当に近いです。これを試してください: 'Range(activeTable&" [MFG Catalog] ")。コピー' – Ralph

+0

Huzzah!ありがとう、これは完全に働いた! –

+0

スクリプトはアクティブなテーブルを取らず、シート上の最初のテーブルを取ります。 – chukko

答えて

0

は、

はい確かに、あなたは非常に接近しています。これを試してみてください:Range(activeTable & "[MFG Catalog]").Copy

ラルフ

おかげで、ラルフ。アクティブなテーブルを参照するためのソリューションを探している人のために

0

、解決策は次のとおりです。

ActiveCell.ListObject.Name 

他のソリューションは、(表を参照するために変数を使用して)問題の問題を解決する - しかし、問題のスクリプトアクティブなテーブルを参照するのではなく、シート内の最初のテーブル(アクティブなテーブルと同じでもよい)を参照します。

関連する問題