2011-12-19 18 views
0

col bのセルの平均を計算しようとしています。セルの平均を計算する際に「ランタイム1004:アプリケーション定義またはオブジェクト型定義エラー」

平均は、データで最後の行を決定することによって計算されます。例えばデータの列Bの最初の行がB6で、最後の行がB24の場合、平均はb6:b24です。データの最後の行がB8の場合、平均はb6:b8になります。あなたが唯一の列Bにテキストまたはデータのいずれかをお持ちの場合は、なぜだけでなく、私は、コードを実行すると

Sub average() 
' 
' average Macro 
' 

' 
Range("B6").Select 

lr = Selection.End(xlDown).Row 
fr = lr + 1 
r = 6 
last = -fr + r 

Range("B" & fr & "").Select 
activecell.formulaR1C1 = "=AVERAGE(R[last]C:R[-1]C)" 

End Sub 

、それは1004

私にエラーを与える私はまた、

activecell.formula = "=AVERAGE(R[last]C:R[-1]C)" 

答えて

0

てみました

Application.Worksheetfunction.Average(Activesheet.Range("B:B")) 
+0

私は上記のb25に数式を入れたいと思います。 – joiner

+0

少し微調整して、あなたの解決策が働いた。どうもありがとう。 :) ActiveCell.Formula = Application.WorksheetFunction.average(ActiveSheet.Range( "B6:B"&fr& "")) – joiner

+0

私はうれしいです。また、その範囲内のテーブル(XL 2007/10)またはリスト(XL2003、同じ名前の別名)を使用して見ることもできます。これにより、データ範囲が拡大または縮小され、それに応じて合計行が移動されます。ちょうど推測ですが、あなたの状況に合うかもしれません。 –

関連する問題