アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者です。
例えば、
n=1~26
n=1の時
Range(A1:Z1).Formula=("=average(A2:A5)")
n=2の時
Range(B1:Z1).Formula=("=average(B2:B5)")
n=3の時
Range(C1:Z1).Formula=("=average(C2:C5)")
(以下、n=26まで続く)
これを変数を使って、すっきり記述するにはどうすればよいのでしょうか?よろしくお願いします。

A 回答 (3件)

モデル例


Sub test01()
For j = 1 To 3
d = ActiveSheet.Cells(9, j).End(xlUp).Row
' MsgBox d
avg = WorksheetFunction.Average(Range(Cells(2, j), Cells(d, j)))
Cells(10, j) = avg
Next j
End Sub
質問者の場合への修正。
For j = 1 To 3の3は26(列)に変える。
Cells(10, j) = avgの10は合計行の行番号に変える。
d = ActiveSheet.Cells(9, j).End(xlUp).Rowの9は合計行の直上の行番号に変える。
    • good
    • 1
この回答へのお礼

なにぶん初心者なもので、一読しただけでは理解できない箇所がありますので、ゆっくり調べてみたいと思います。ありがとうございました。

お礼日時:2005/10/26 13:16

n = 2


col = Chr(Asc("A") + n - 1)
Range(col & "1:Z1").Formula = "=average($" & col & "2:$" & col & "5)"
みたいな感じで良いかも
    • good
    • 2
この回答へのお礼

アドバイスを参考に記述したところ、目的とする結果を得ることができました。助かりました。ありがとうございました。

お礼日時:2005/10/26 13:18

こんにちは。



私には、何をしたいのか、コードからは読み取れませんが、分岐なのでしょうか?

Sub TestSample1()
Dim n As Integer
n = InputBox("数字を入れてください")
If n > 0 And n < 27 Then
 ActiveSheet.Cells(1, n).Resize(, 27 - n).FormulaLocal = "=Average(R[1]C:R[4]C)"
End If
End Sub
    • good
    • 0
この回答へのお礼

nの値をInputBoxなどで取得し、その値に応じてAverageの範囲を設定したいと思いました。質問が分かり難く、すみませんでした。おかげさまで、すっきりと記述することができました。ありがとうございました。

お礼日時:2005/10/26 13:49

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

このQ&Aを見た人はこんなQ&Aも見ています