• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelの集計表で固定していない小計があり、計算結果を上方の小計行に入れたい。)

Excelの集計表で固定していない小計があり、計算結果を上方の小計行に入れたい

このQ&Aのポイント
  • Excelの集計表で固定していない小計があり、計算結果を上方の小計行に入れたい方法について教えてください。
  • エクセル2K使用で300行程度の表があり、2行目まではタイトル行です。
  • VBAを使用して小計の計算を行い、結果を上方の小計行に入れる方法について教えてください。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

申し訳ありません。 あなたのにあったのを落としてしまいました。 With ActiveSheet の下に myLAST_ROW = .Cells(Rows.Count, 1).End(xlUp).Row を入れてください。

kts59
質問者

お礼

okormazd 様 目的通りの動きを確認できました。 私の知識不足で、どのように操作して、どのように動作しないのか うまく言葉で説明できなかったことが原因であると心得ております。 初心者とはこんなもんだと思って、どうか、お気を悪くなさらずに 今後ともご指導お願いいたします。 ありがとうございました、取り急ぎ 御礼まで。

その他の回答 (2)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

#1です。 同じmoduleの中に同じ名前のsubがなければ貼り付けて実行するだけです。

kts59
質問者

補足

#1様 >同じmoduleの中に同じ名前のsubがなければ貼り付けて実行するだけです。 新規Excelファイルに貼り付けて実行等も試みましたが myBOTTOM_ROWには代入が"0"のままで、 myTOP_ROWには"Nothing"が返ってしまいます、 勿論データは同じ集計表を入れています。 VBAの基本が分かっていませんのでお許し下さい。 2~3日勉強し、質問かお礼の返事を致しますので、お気付きになられましたら ご教授お願いします。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

実行していないから、危険だけど、 下記のようなもの。 Sub SYOUKEI() Dim i As Integer Dim myLAST_ROW As Integer Dim myTOP_ROW As Integer Dim myBOTTOM_ROW As Integer Dim myRANGE As Range With ActiveSheet myBOTTOM_ROW = myLAST_ROW For i = myLAST_ROW To 3 Step -1 If .Cells(i, 2).Value = "小計" Then myTOP_ROW=i+1 Set myRANGE = _ .Range(.Cells(myTOP_ROW, 3), .Cells(myBOTTOM_ROW, 3)) .Cells(i, 3).Value = WorksheetFunction.Sum(myRANGE) myBOTTOM_ROW = i - 1 End If Next i End With Set myRANGE = Nothing End Sub

kts59
質問者

お礼

早速のご回答ありがとうございます。 教えていただいたマクロを貼り付け以外に何か手続きが必要でしょう? なにせ、超初心者なので理解できなくてすみません。

関連するQ&A

専門家に質問してみよう