数据vba excel数组的平均值

我是这个编程的新手。 我一直在寻找这个主题,我找不到适合我的问题的任何东西。

我有一系列的数据与措施。 我有31行和96列。 我希望我的VBA代码find每列数据的平均值,并在列的最后一个值之后的行上显示它。

有谁能够帮助我?

先谢谢了。

我发现的最简单的答案是使用以下内容:

Application.WorksheetFunction.Average(dataArray)

这(假设)与在工作表中使用平均函数相同。 唯一的缺点似乎是你必须使用数组或其他数据点列表。 这很容易解决以下问题:

 Function getArray(dataRange As Range) As Variant() Dim arr(dataRange.Rows.Count, dataRange.Columns.Count) as Variant Dim i as Integer, j as Integer For i = 1 to dataRange.Rows.Count For j = 1 to dataRange.Columns.Count arr(i, j) = dataRange(i, j) Next Next getArray = arr End Function 

这将把范围转换成一个数组,并可以通过Average函数访问。 例如:

myAverage = Application.WorksheetFunction.Average(getArray(Range("C1:CT56")))

您可以在数据下方的行中input公式:

 =average(A1:A96) 

这不是比使用VBA这个目的更容易吗?

如果你真的想使用VBA:

 Sub ownaverage() Dim totalsum As Double Dim totalnum As Double Dim ownav As Double totalsum = 0 totalnum = 0 For Each c In Worksheets("Sheet1").Range("D17:E17").Cells totalsum = totalsum + c.Value totalnum = totalnum + 1 Next ownav = totalsum / totalnum ownaverage = ownav Range("I27").Select ActiveCell.FormulaR1C1 = ownaverage() End Sub 

循环引用: http : //msdn.microsoft.com/en-us/library/office/aa221353 (v= office.11​​).aspx

再次感谢您的答复。 我能够自己弄清楚。 我写的代码是:

 Private Sub CommandButton2_Click() Dim soma as Double Dim media as Double soma=0 media=0 totalnum=0 With Sheets("sheet1") For j= 1 to 96 For i =28 to 58 Set target = Cells (i,j) soma=soma+targe totalnum=totalnum+1 Next i Cells(i+1,j).Value = soma/totalnum soma=0 totalnum=0 Next j End With End sub 

我希望这个代码可以帮助那些和我一样怀疑的人。

再次感谢DaveG