• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロ シートの集計)

エクセルマクロシートの集計

このQ&Aのポイント
  • エクセル・マクロを使用して、複数の単票と集計表を一致した行にデータを転記したい。
  • 単票の名称は「○課△係」で、シート数は2〜10程度で変動する。
  • 集計表は「集計」という名称の1シートで、単票から集計表へのデータ転記を繰り返して集計表を完成させたいが、エラーが出て実行できない。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

エラーが出るのは文法的におかしいからです。 お書きになったコードを文法的に修正すると以下のようになります。 これでエラーはなると思いますが、集計シートには0しか転記されないと思います。 Sheets("集計").Cells(m, y).Value = q で使っている変数qがどこにも定義されていないようですから。 Sub 集計()   Dim T As Worksheet   Dim p As Long, q As Long, n As Long, m As Long, y As Long   For Each T In Worksheets     If T.Name Like "*課*係" Then       For n = 10 To 50         p = T.Cells(n, 1).Value         For m = 2 To 550           If Sheets("集計").Cells(m, 1).Value = p Then             y = 5 + T.Range("B4").Value             Sheets("集計").Cells(m, y).Value = q             Exit For           End If         Next m       Next n     End If   Next End Sub

shtokk2778
質問者

お礼

qを定義?したら実行されました! ありがとうございました!

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

まずNEXTが2個足りません T.Name = "*課*係" の意味が私には分かりません。多分これはエラーになるでしょう。 それと qに値が代入されていません y = 5 + T.Range("B4") B4の値に5を足した数を集計シートのセルの列数に指定するのでいいのですか? > 単票と集計表のA列が一致した行(の特定の列)に、単票から集計表へデータを転記します。 これがどの列を指すのか分からないのでそこの指定が正しいのかどうかは不明です。 また、この場合1個でもデータが見つかると次を探しませんがそれでいいのでしょうか? もし、一致するデータが複数合って検索するのでしたら FINDを利用すればいかがでしょうか ヘルプに使用例があります。 また、両方ともデータが無い場合も一致したとみなされると思われます。 それと For Each T In Worksheets If T.Name <> "集計" Then やりたいこと End If のような流れになると思われます。

shtokk2778
質問者

お礼

回答いただき、本当にありがとうございます。参考になりました。

関連するQ&A