• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数をうまく使えずに悪戦苦闘しています。)

変数を使えずに悪戦苦闘している原因とは?

このQ&Aのポイント
  • 変数を使えずに悩んでいる原因や、コードの動作が思い通りにならない問題について解説します。
  • 結果シートに値のみを貼り付けてソートする方法や、前月のデータを集計してピボットテーブルを作成する方法についても紹介します。
  • また、1月の場合は12月のデータを見るようにする条件分岐の方法についても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

とりあえず getRange = "=INDEX(確認用データ,H89,d)" は getRange = "=INDEX(確認用データ,H89," & d & ")" だけど INDEX関数は INDEX(範囲,行番号,列番号)なので d = "_" & a & "月" と文字を入れることがおかしい。 加えて a = Sheets("集計用").Range("B87").Value ・・・ Sheets("集計用").Range("C89").Formula = getRange とB87の値に応じて、集計用のシートのC89の関数を変えるくらいだった 元々から C89に入れる関数を考えれば良いと思うのですが。 VBAで処理する必要性が?です。

intyiyasaka
質問者

お礼

hallo-2007さん 丁寧な回答、有難うございました。 結局、自分で解決しました。 ご指摘の通りINDEX関数はセルに名前を定義していたのですが、 それが使えなかったので、結局列の番号にも参照する対照表を作って、変数で検索して、対象する列番号の数値を拾ってくるように作り直しました。 >B87の値に応じて、集計用のシートのC89の関数を変えるくらい >だった >元々から >C89に入れる関数を考えれば良いと思うのですが。 行番号はセルの参照だけで澄みますが、列番号が変数なので、セルに関数を入れてすませることは出来なかったのです。 つまり、当月(例えば3月)だったら前月(2月)の合計の値を拾ってくるような。 なので、変数をどうしても使いたかったのでvbaを使いました。 hallo-2007さん、お忙しい中、質問に答えてくださった事を心より感謝いたします。本当に有難うございました。