|
▼愛子 さん:
おはようございます
>1.同じ名前の金額を加算するコードは、
>dic(c.Value) = dic(c.Value) + c.EntireRow.Range("L1").Valueが
>加算するコードだったでしょうか?
そうです。名前をキーにした辞書(dic)にその金額が入りますので。
その金額 = 加算前の金額 + 現在のL列の値
こういったことをしています。
>2.E列の名前に対して、L列以外にF列又はG列等追加をする場合を想定して、下記コードを加えたのですがエラーになりました。
エラーになった場合、どういうエラーだったのかが、回答者にとっては必要になります。
構文エラーとか、あるいはコンパイルレベルでエラーになったのか、実行時にエラーになったのか。
それぞれに、何かしらメッセージが出ていますから、それを教えてもらう必要があります。
書かれたコードがアップしたとおりの
dic(c.Value) = dic(c.Value) + c.EntireRow.Range("L1").Value + c.EntireRow.Range("F1").Value
だったとすれば、"F1" が全角の F になっていますが、VBAは、ここは 通常にF1 とみなしてくれます。
(でも、ちゃんと半角で "F1" と記述すべきですが)
で、ここでエラーになるとすれば、加算しようとしている F列に【数値以外の】何かがはいっていて
【型が違います】というエラーには、なりますね。そんな時、このコードが黄色く光ってとまるわけですが、
この c.EntireRow.Range("F1").Value の上にマウスをもっていくと、加算しようとしている値がうかびあがります。
どんな値が浮かび上がったでしょうか?
ついでにというか、皆さんからもでているんですが、複雑な機能を組み合わせたコードを作り上げなければいけないとしても
その一部分、一部分を切り離して、たとえば セル範囲のループだけ とか、あるセルの値を判定して分岐させる部分だけ
とか、そのような、テストドライバーコードを書き、個々に確認しながら、OKになったものを組み合わせるというやりかたが
急がば回れで、早道になることが多いですね。最初から組み合わせた完成形のコードにしますと、個々の記述がわるいのか、
組合せがわるいのか、その判断に悩まなきゃいけなくなるリスクがありますので。
|
|