0

Vertical Excel Table のさまざまな要素をループして、VBA を使用して水平テーブルに渡そうとしています。縦の表は質問のリスト (名前、ラベル、値) を含むフォームで、横の表には縦の表の質問名を使用した列が含まれます。

コードは次のようになります。

Dim row As Range
Dim rowCount As Integer: rowCount = 1
For Each row In [tbl_QUESTIONS[name]].Rows
  Sheets(ANSWERS).Cells(r,rowCount).Value = row.Value
  rowCount = rowCount + 1
Next

私の質問は、テーブル参照と列参照を動的に変更するにはどうすればよいですか?

[tbl_QUESTIONS[name]].Rows

私はこのようなことができるようにしたいと思います:

["tbl_" & tblName & "[" & colName & "]]".Rows

しかし、それはうまくいかないようです... VBAを使用してこれを参照する簡単な方法はありますか? ["tbl_" & tblName] から ListObject を作成する方法が必要だと感じましたが、ListObject または ListObject.Rows 内で「colName」を参照できませんでした。

どんな助けでも大歓迎です。

ああ、可能であれば、これを Excel 2007 VBA と互換性を保ちたいと思います。

乾杯!

4

2 に答える 2

0

私はこのリンクに出くわしましたが、うまくいくようです。

次を使用して範囲を作成できるようです。

Dim TBL As Range
Set TBL = Range("tbl_" & tblName & "[" & colName & "]")

範囲を定義するのではなく、ListObject を保持する方法をまだ知りたいのですが、別の方法が見つかるまでこれを使用します。

于 2014-09-23T16:22:32.400 に答える
0

あなたはおそらくこれを知っているでしょうが、質問には答えがないので...

LisObjects コレクションを使用して listObject を選択し、それをパラメーターとして関数/サブルーチンに渡します

于 2016-04-03T21:51:35.733 に答える