私はVBAをかなり新しくしています。私の目標を達成するためにこのウェブサイトの助けを借りてコードをハッキングしていますが、通常はそれほど美味しくありません。しかし、以下は非常に頻繁に現れ、私はあなたが私を助けることができる目標を達成するためのより簡単な方法があることを願っています。Excel VBAリファレンスListObject変数を使用
私はSQLデータベースを照会することによって生成されたExcelのテーブルを持っているので、私はのは、言わせての列タイトルを持つテーブルA、B、C、D、E
私がしたいで終わりますユーザーの選択に基づいてVBAで配列を作成します。たとえば、セルA1にAがある場合、配列には列Aのデータが格納されます。セルA1にBがある場合、配列には列Bのデータが格納されます。私はAの周りに「」投げる場合Listcolumn に参照として文字列変数Aを使用しようとするライン上のエラーを
Sub Compare()
Dim WS As Worksheet
Dim lo As ListObject
Dim Xaxis As Variant
Set WS = Worksheets("SQL Table") 'sheet that has SQL generated table
Set lo = WS.ListObjects("Table") 'Table is the name of the table
Dim A As String
A = WS.Range("A1").Value 'A1 in this case has the value A in it
Xaxis = Worksheets("SQL Table").ListObjects("Table").ListColumns(A).DataBodyRange
End Sub
が、取得:私は現在、次のコードを使用しようとしています
それは動作しますが、それは変数ではありません。私はそれぞれのオプションのためにケースを使用して私が望むものを達成することができますが、私はそれをより合理化したいと思います。そのためにワークシートなどのListObjectを参照する変数を使用する方法はありますか?
は
コード構築:変更が含まあなたのコードに何か問題がありますが、最後の行で 'lo'を使うべきです。 SQL TableのA1の値が列の名前であることを確認してください。実際のエラーとは何ですか? – Rory
こんにちは、こんにちは、そのコメントありがとうございます。私は戻って、私は私の質問でそれを言ったことはないことに気づいたが、A1の値は実際に別のシートにあった。しかし、コードでは、私はまだA1に値を持たないSQLテーブルシート上にあった。私は、 'Set WS = Worksheets( "Sheet6")'を追加しました。ここで、A1値は実際に 'Dim A'の後にあって、今はすべて動作します。あなたの助力の見直しに感謝します。 – Carbon60