こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル VBAコードの書き方を教えてください。

エクセル VBAコードの書き方を教えてください。

今回は、VBAで掛け算をしたいのですが、
コードが間違っているためか実行ができません。
VBAコードのどこに不備があるか教えてください。

<条件>

*最終行(H列で判断)を選択し、
 I2(2行、I列)~I最終行(最終行,最終行のI列)までの
 範囲を計算したい。
*たとえば、I2であれば、F2×G2×H2×0.01の値を代入したい。
 I最終行であれば、F最終行×G最終行×H最終行×0.01の値
EX) 添付ファイルの場合、I2=500、I4=125、にしたい。

<参考>

Sub SURYO()

Dim r As Long
With Sheets("Sheet1")
For r = 2
Cells(r,9).value = Cells(r,6) * Cells(r,7) * Cells(r,8)
Next
End With
End Sub

よろしくお願いします。

投稿日時 - 2010-10-13 21:18:35

QNo.6248065

すぐに回答ほしいです

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

こんばんは!
すでに回答は出ていますが・・・
FOR~NEXTの部分を
For r = 2 to cells(rows.count,8).end(xlup).row

とすればOKなのですが、
質問を読ませていただくと最後の「0.01」を掛ける必要があるのでは?

余計なお世話かもしれませんが、Sheet1のVBE画面上でSheet1だけのマクロにすれば

Sub test()
Dim r As Long
For r = 2 To Cells(Rows.Count, 8).End(xlUp).Row
Cells(r, 9) = Cells(r, 6) * Cells(r, 7) * Cells(r, 8) * 0.01
Next r
End Sub

だけで大丈夫のような気がします。
的外れならごめんなさいね。m(__)m

投稿日時 - 2010-10-13 21:47:28

お礼

ありがとうございました。
分かりやすく、丁寧な解説で助かりました。

投稿日時 - 2010-10-27 23:15:18

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

For r = 2

For r=2 to X

じゃないですか

F2×G2×H2×0.01
なら
Cells(r,6) * Cells(r,7) * Cells(r,8) * 0.01
じゃないですか

With Sheets("Sheet1")
とするのなら
Cellsの前にドットを入れたほう(.Cells)がいいと思いますが…

投稿日時 - 2010-10-13 21:28:48

お礼

ありがとうございました。
助かりました。

投稿日時 - 2010-10-27 23:14:20

あなたにオススメの質問