誕生日にもらった意外なもの

またまたエラーが起きてしまいました、、

D列にある数値の平均値を出すマクロを組みたいのですが
そのD列は今後増えていくので変数を使い指定したいのです


Option Explicit


Public Sub all()

Const SH_NAME As String = "VBA"
Dim i
Dim endrow As Long
Dim ws As Worksheet
Dim Result As Integer

Set ws = ThisWorkbook.Worksheets(SH_NAME)


With ws


endrow = .Cells(Rows.Count, 4).End(xlUp).Row
For i = 2 To endrow

Result = Application.WorksheetFunction.Average(.Range("D2:D&i"))
.Range("F39").Value = Result
.Range("F39").NumberFormatLocal = "0.00"

Next i

End With

End Sub



このコードだと

Result = Application.WorksheetFunction.Average(.Range("D2:D&i"))

のところでrangeメソッドは失敗しました
と言われてしまいます


どうかよろしくお願いします<m(__)m>

A 回答 (1件)

> Result = Application.WorksheetFunction.Average(.Range("D2:D&i"))


i = 2のときは"D2:D2", i = 3のときは"D2:D3"……というようなことがしたいのでしょうか?

それなら
 Result = Application.WorksheetFunction.Average(.Range("D2:D" & i))
と書く必要があります。
    • good
    • 0
この回答へのお礼

なるほど!!
こちらの拙い質問の意図をきちんと汲み取ってくれそれに対して適切な回答をありがとうございました_(_^_)_
また機会があればよろしくお願いいたします!

お礼日時:2014/05/16 10:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!