エクセルVBAで足し算したいです。
内容はシート内のA、B列に品番と数量が記載されています。(下図参照)
マクロを実行すると、E列に数式が入るようにしたいです。
D列の品番は予め入っています。
例えば、品番AはA列に2つあります。 ”=10+30”となります。
コードを書いてみました。
maxrow = Cells(Rows.Count, 1).End(xlUp).Row For cnt = 3 To maxrow Set rng = Columns(4).Find(what:=Cells(cnt, 1).Value, LookAt:=xlWhole) If Not (rng Is Nothing) Then selerow = rng.Row If Cells(selerow, 5) = "" Then Cells(selerow, 5) = "=" & Cells(cnt, 2).Value Else Cells(selerow, 5) = Cells(selerow, 5) & "+" & Cells(cnt, 5).Value ’★ End If Else MsgBox "品番がみつかりませんでした。" End If Next cnt
実行すると、品番B~Dは図のようになりますが、
品番Aは"10+30"と入り、"="が抜けてしまいます。
コードをどのように修正すればよろしいですか?
もっとスマートな書き方があれば、教えて下さい。
●質問後に追記しました。
★の部分のコードを下記に変えたら
Cells(selerow, 5) ="=" & Cells(selerow, 5) & "+" & Cells(cnt, 5).Value
例えば、品番Aが3つ以上あった場合
品番A 10、20、30 の場合
上記コードだと
"=30+30" 最初の"10+20"は数字になってしまいます。
"=10+20+30" とはなりません。
単純に『"=" &』を付ければいいのでは。そういう話ではない?<追記>同じセルに書き込んでますかね?なら最後に一括で'='を付ければいいかと。

回答5件
あなたの回答
tips
プレビュー