平均如果大于零vba

我试图平均一列,但只有当这个值大于零。 然后我希望它把信息放在那一行的下一个空白单元格中。

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

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

我试图用下面的代码来使它像单元格地址大于零一样。 但它不断给我一个错误来debugging?

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

任何帮助将是伟大的。

谢谢Al

你的公式的语法是错误的。

你需要创build一个像

 =AVERAGEIF(D2:Dxx, ">0") 

所以使用这个

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