• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:条件の付いた場合の串刺し集計について教えてください)

条件付きの串刺し集計について知りたい

このQ&Aのポイント
  • エクセルでワークシート枚数が適当数あり、各シートのA1には0か1の数値が入っています。各シートのA3からA10までは100以下の数値が入っているとします。一番左側に空のシートを挿入して、A3からA10までを領域選択し、A1の値が1のシートのみ一番左側のシートに串刺し合計したいのですが、うまくいきません。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

Worksheets(1)をActiveにした Selection はあくまでもWorksheet(1)で選択したセルで、ループ変数の r は その値を合計しています。 つまり Worksheets(1) の Selection(A3:A10?)を順番に合計しているだけで、元々空白なので 0 が返るだけです。 t = t + r.Value を下記のようにするとどうでしょう?  If Range("A1").Value = 1 Then    t = t + Worksheets(i).Range(r.Address).Value   ' t = t + r.Value  End If 別案で、こんな書き方もあります。 Sub test1() Dim i As Integer, myAddress As String myAddress = Worksheets(1).Range("A3:A10").Address ' myAddress = Selection.Address '選択範囲にしたいなら For i = 2 To Worksheets.Count  If Worksheets(i).Range("A1") = 1 Then    Worksheets(i).Range(myAddress).Copy    Worksheets(1).Range(myAddress).PasteSpecial _       Paste:=xlPasteValues, operation:=xlAdd    Application.CutCopyMode = False  End If Next i End Sub

aiueochama
質問者

お礼

早速のご回答ありがとうございます。 さすがにプロの技には脱帽します。 別案のほうもすぐには分からないので、これから勉強させていただきます。 ほんとうにありがとうございます。

関連するQ&A