2014-09-27 65 views
3

我想平均一列,但只有當該值大於零。然後我希望它將信息放在該行的下一個空白單元格中。平均如果大於零vba

下面的代碼是作爲一個簡單的平均值,但我希望它從上面的單元格中排除任何零值。

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

I嘗試使用下面的代碼來使它像單元格地址大於零一樣。但它一直給我一個錯誤來調試?

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

任何幫助將是偉大的。

感謝 鋁

回答

5

您的公式語法是錯誤的。

您需要創建一個公式一樣

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

所以用這個

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

感謝完美的作品。我想我只是試圖在Excel中對公式進行鏡像: - | – 2014-09-27 11:02:06