Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel &引用;运行时1004:应用程序定义或对象类型定义错误;关于单元平均数的计算_Excel_Runtime_Vba - Fatal编程技术网

Excel &引用;运行时1004:应用程序定义或对象类型定义错误;关于单元平均数的计算

Excel &引用;运行时1004:应用程序定义或对象类型定义错误;关于单元平均数的计算,excel,runtime,vba,Excel,Runtime,Vba,我试图计算b列中单元格的平均值 通过使用数据确定最后一行来计算平均值。e、 g.如果列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 &

我试图计算b列中单元格的平均值

通过使用数据确定最后一行来计算平均值。e、 g.如果列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)"

如果B列中只有文本或数据,为什么不对整个列进行平均:

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

我想在上面的例子中把公式放在b25中。稍微调整一下,你的解决方案就成功了。非常感谢。:)ActiveCell.Formula=Application.WorksheetFunction.average(ActiveSheet.Range(“B6:B”&fr&”)我很高兴。您还可以考虑在该范围内使用表(xl2007/10)或列表(XL2003,同一事物不同的名称)。它允许您的数据范围增长或缩小,并相应地移动总行。只是一个猜测,但似乎可能适合您的情况。您好,Doug,上述函数在一个工作簿中定义的宏中工作,但在另一个工作簿中似乎不工作。有什么建议吗?lr=Selection.End(xlDown)。行fr=lr+1 r=6 last=-fr+r范围(“B”&fr&“”)。选择Application.CutCopyMode=False-ActiveCell.Formula=Application.WorksheetFunction.Average(ActiveSheet.Range(“B6:B”&lr&“”)范围(“C”&fr&“”)。选择ActiveCell.Formula=Application.WorksheetFunction.Sum(ActiveSheet.Range(“C6:C”&lr&“”)“=Sum(R[-15]C:R[-1]C)”Range(“D”&fr&“”)。选择ActiveCell.Formula=Application.WorksheetFunction.Sum(ActiveSheet.Range(“D6:D”&lr&“”)”)“=Sum(R[-15]C:R[-1]C)”