2014-09-27 5 views
3

Я пытаюсь усреднить столбец, но только если значение больше нуля. Затем я хочу, чтобы он помещал информацию в следующую пустую ячейку в этой строке.среднее значение, если больше нуля 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 

Любая помощь будет замечательной.

Благодаря Al

ответ

5

Ваш синтаксис формулы является неправильным.

Вам нужно создать формулу, как

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

Так используйте этот

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

Спасибо, что работает отлично. Наверное, я просто попытался отразить формулу в excel: - | –

Смежные вопросы