使用VBA在Excel中查看显示的过滤数据的平均值和标准偏差

时间:2014-10-02 13:13:45

标签: excel vba excel-vba standards average

所以我遇到了当前代码的一个小问题。我的目标是过滤Excel工作表中的数据,并获取该过滤数据的平均值和标准差。在不过滤数据的情况下,我可以显示平均值和标准偏差。我得到平均值和标准差的值。但是,在我过滤数据后,我再次运行宏,但它显示的平均值和标准偏差与未过滤数据时的平均值和标准差相同。我想知道我的代码有什么问题,或者我如何调整它,因此它仅对显示的数据采用平均值和标准差。

这是我的代码:

'平均代码

 Sub Avg()
 Range("F1").Value = Application.WorksheetFunction.Average(Columns("D"))
 End Sub

'标准代码Dev_S

Sub Dev()
Range("G1").Value = (Application.WorksheetFunction.StDev_S(Columns("D"))) / 1.128
End Sub

1 个答案:

答案 0 :(得分:2)

使用小计功能。 101和107代码应忽略隐藏值。 http://office.microsoft.com/en-ca/excel-help/subtotal-function-HP010062463.aspx

Sub Avg()
Range("F1").Value = Application.WorksheetFunction.SUBTOTAL(101,Columns("D"))
End Sub

Sub Dev()
Range("G1").Value = (Application.WorksheetFunction.SUBTOTAL(107,Columns("D"))) / 1.128
End Sub

我现在无法测试,请告诉我这是否有效!