平均值如果大于零vba

时间:2014-09-27 07:16:24

标签: excel excel-vba vba

我正在尝试对列进行平均,但仅当值大于零时才这样做。然后,我希望它将信息放在该行的下一个空白单元格中。

下面的代码是一个简单的平均值,但我希望它从上面的单元格中排除任何零值。

With Range("D2")
    .End(xlDown)(2, 1) = _
    "=AVERAGE(" & .Address & ":" & .End(xlDown).Address & ")"
End With

我尝试使用以下代码使其好像单元格地址大于零。但它一直给我一个错误调试?

With Range("D2")
    .End(xlDown)(2, 1) = _
    "=AVERAGEIF(" & .Address & ":" & .End(xlDown).Address & "," & Cell.Address & " > 0," & .Address & ":" & .End(xlDown).Address & ")"
End With

任何帮助都会很棒。

由于 人

1 个答案:

答案 0 :(得分:5)

您的公式语法错误。

您需要创建一个类似

的公式
=AVERAGEIF(D2:Dxx, ">0")

所以使用这个

With Range("D2")
    .End(xlDown)(2, 1) = _
    "=AVERAGEIF(" & .Address & ":" & .End(xlDown).Address & ","">0"")"
End With