E・F列は既に入力されています。
下記のようにG列・H列にマクロで出力できるようにしたいのです
■例
----E-----F-----G-------H
07--名前A --金額---名前A---名前Aの合計金額
08--空白---金額---名前B---名前Bの合計金額
09--名前B --金額---名前C---名前Cの合計金額
10--空白---金額---合計---名前A~名前Cの合計金額
11--空白---金額
12--名前C --金額
13--合計--合計金額
ご教授お願い致しますm(_ _)m
No.1
- 回答日時:
Sub try()
Dim myDic As Object
Dim r As Range
Dim st As String
Dim v As Variant
Set myDic = CreateObject("Scripting.Dictionary")
For Each r In Range("E7", Cells(Rows.Count, 5).End(xlUp))
st = IIf(r.Value <> "", r.Value, st)
If Not myDic.Exists(st) Then
myDic(st) = Array(r.Value, r.Offset(, 1).Value)
Else
v = myDic(st)
v(1) = Val(v(1)) + r.Offset(, 1).Value
myDic(st) = v
End If
Next
Range("G7").Resize(myDic.Count, 2).Value = _
Application.Transpose(Application.Transpose(myDic.Items))
Set myDic = Nothing
End Sub
一例になれば。
この回答への補足
ご回答ありがとうございます。
ご回答いただいて申し訳ないですが、エラー表示されてしまいます。
配列で構成しているのではと思い考えてみましたが、やはり理解できず。
配列苦手で(^^;) すみません(><)
配列で構成したほうが一番いいと思うので、配列についてはもう少し勉強し直します。
No.2
- 回答日時:
7行目から金額が記入してある前提で。
sub macro1()
dim r as long
dim n as long
n = 6
range("H7:H65536").clearcontents
for r = 7 to range("E65536").end(xlup).row
if cells(r, "E") <> "" then
n = n + 1
cells(n, "G") = cells(r, "E")
end if
cells(n, "H") = cells(n, "H") + cells(r, "F")
next r
end sub
みたいな。
この回答への補足
ご回答ありまがとうございます。
分かりやすいプログラムだったのですが、下記のところで
エラーがでます。原因について考えたのですが、分かりません。
お手数ですが、どのようなプログラムを入力すればよいのか、
ご教授お願いできないでしょうか?
宜しかったらお願いします(><)
cells(n, "H") = cells(n, "H") + cells(r, "F")
No.3
- 回答日時:
マクロでなく、sumif関数で実現できます。
セルH7に式[=sumif(E7:E12,"=名前A",F2:F12)]
セルH8に式[=sumif(E7:E12,"=名前B",F2:F12)]
セルH9に式[=sumif(E7:E12,"=名前C",F2:F12)]
セルH9に式[=sum(H7:H9]
を設定。
No.4ベストアンサー
- 回答日時:
>下記のところでエラーがでます。
どんなエラーが出たのか不明なので詳しい事は判りませんが,恐らくあなたの実際のワークシートが,ご相談で書かれている内容とは違ってるのが原因です。
変更前:
cells(n, "H") = cells(n, "H") + cells(r, "F")
変更後:
cells(n, "H") = application.sum(cells(n, "H"), cells(r, "F"))
#具体的に「このマクロの行で」「こんな風に書かれてるエラーが現れた」「どこまで進んでマクロが止まった」「止まったときのワークシートはこんな内容が記入されている」などのように,目に見える様子を何でも詳しくご質問に書いて下さい。
この回答への補足
エラー箇所→ cells(n, "H") = application.sum(cells(n, "H"), cells(r, "F"))
エラー出力→「実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです」
止まったときのワークシートには、名前Aだけが出力されています。
何度も申し訳ないですが、ご教授お願いします。
すみません。
cells(n, "H") = application.sum(cells(n, "H"), cells(r, "F"))
で解決しました。
宣言した定数が一つ異なっているという単純なミスでした(><)
何度もご丁寧に本当に、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- Excel(エクセル) 10円の誤差が分からない 11 2022/11/13 07:25
- その他(保険) 介護保険料って月いくらですか? 2 2022/07/25 17:07
- その他(Microsoft Office) Excelの初歩中の初歩…? 物凄く簡素な病院名と合計金額のみの表を作りたいのです。 下の方に会計線 5 2022/10/06 14:00
- Excel(エクセル) 隣り合っていないセルを まとめて税込表示したい 8 2022/09/25 14:32
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Access(アクセス) MAXで0が出力される 1 2022/03/31 21:43
- 確定申告 出前館とUber Eatsの青色申告に、支払調書にあたる書類の添付は必要でしょうか。 毎回振込された 1 2023/02/12 11:31
- Excel(エクセル) Googleスプレッドシートを使って、別シートに それぞれの合計を出したい。 1 2022/04/25 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数百万円って いくらでしょうか?
-
請求書の金額が異なる場合の、...
-
源泉徴収票の「給与所得控除後...
-
agoda予約サイトについて
-
給与/報酬の「支給額」と「支...
-
【エポスカード】支払金額確定...
-
ドミノピザ
-
35,000EUR とは、日本円で...
-
振込の時の領収書の書き方
-
前納(確定申告、経費)
-
源泉徴収票が間違っていた場合
-
僕の金額が下落したら上がって...
-
株投資で損切りするタイミング...
-
如何辦理購物退稅
-
期日前投票立会人の仕事
-
Excel 循環参照による警告 の解...
-
インボイス制度に対応した領収...
-
内金の返却について
-
お見舞い金の金額の明記について
-
まいばすで働いてたんですが、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
請求書の金額が異なる場合の、...
-
数百万円って いくらでしょうか?
-
まいばすで働いてたんですが、...
-
word&excel 2007での差込印刷で...
-
【エポスカード】支払金額確定...
-
振込の時の領収書の書き方
-
出産祝いプレゼントを有志であ...
-
VBA テキストボックスに3桁カ...
-
1976年の7万円は現在だといくら...
-
株投資で損切りするタイミング...
-
源泉徴収票の「給与所得控除後...
-
「初穂料はお志」の「お志」と...
-
給与/報酬の「支給額」と「支...
-
agoda予約サイトについて
-
確定申告の個人年金の記入方法
-
数字にカンマを入れる方法
-
Excel VBAで、検索後行の...
-
犯罪(詐欺)被害にあった子に...
-
Excelで原価計算
-
僕の金額が下落したら上がって...
おすすめ情報