2011-12-19 1 views
0

Я пытаюсь вычислить среднее значение ячеек в столбце b.«runtime 1004: определенная пользователем или объектная ошибка» при вычислении среднего числа ячеек

Среднее значение рассчитывается путем определения последней строки с данными. например если первая строка в столбце B с данными B6, а последняя строка - B24, тогда среднее значение b6: b24, или если последняя строка с данными B8, тогда среднее значение должно быть для b6: b8.

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

Если у вас есть только текст или данные в столбце B, почему не только средняя колонка:

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) или List (XL2003, то же самое другое имя) в этом диапазоне. Это позволяет вашему диапазону данных расти или уменьшаться и соответственно перемещать общую строку. Просто догадаться, но, похоже, может поместиться в вашу ситуацию. –

Смежные вопросы