Excel VBAでは、2つ以上の操作でテーブル(ListObjects)の列(ListColumns)を塗りつぶす方法が見つかりません。文字列のヘッダーを使用する代わりに、インデックス番号を使用してテーブルの列を作成します。したがって、たとえば、私が使用しているとき、この作品を知っている:Excel VBAの塗りつぶしテーブル(ListObject)の列他のテーブルの列と操作の結果
lo.ListColumns("Spread").DataBodyRange = "=[Current]-[Historic]"
しかし、「スプレッド」は、カラム10、および「現在」は5列目と「歴史的」であると言うが、列7であるような何かをする方法はあります次のように列に値を設定しますか?私はこれがうまくいかないことを知っていますが、私はさまざまな方法を試して検索でそれを見つけることができないのと同様のものがあることを望んでいます。
lo.ListColumns(10).DataBodyRange = lo.ListColumns(9).DataBodyRange - _
lo.ListColumns(10)
ありがとうございました。
危険です。誰かが後で表の列を挿入または削除し、マクロが間違ったことをします。このようなVBAへのハードコード参照は最適ではありません。 – jeffreyweir
私は全面的に同意するが、質問は非常に明確で、私はOPが彼/彼女が何をしているかを知っていたと信じることを選んだ。 – Excelosaurus
ええ、私はあなたがopを彼らが求めたものに正確に与えたことを実感します。彼らが求めていることは、彼らの健康に有害かもしれないということだけです。このような場合、私は彼らに求めていることの落とし穴や、今後Googleがここにもたらす他の誰かに明示的に指摘したいと思います。将来、恥ずかしくてキャリア制限のミスを誰かに救うかもしれない。 – jeffreyweir