【发布时间】:2013-12-17 19:10:46
【问题描述】:
我的代码可以很好地计算出我想要的平均值。但现在我希望它只在引用的单元格包含值时运行计算。我完全不知道如何将条件输入我的代码。
Dim i%
Dim rng As Range
Dim last&
last = Range("A65536").End(xlUp).Row
For i = 2 To last
Range("F" & i).FormulaR1C1 = _
"=AVERAGE(R[-4]C[-2],R[-2]C[-2],RC[-2],R[2]C[-2],R[5]C[-2],)"
Next i
End Sub
我尝试使用 AVERAGEIF,但我也无法使用它。每当我尝试使用函数向导设置它时,该范围都会给我一个范围内的#Value。所以我不知道如何让它在 VBA 中工作。
我们将不胜感激。
*编辑 - 我只希望平均线出现在单元格中,但我想在计算之前测试单元格的值。 (悉达多,谢谢你的回答!)澄清一下:
Dim i%
Dim rng As Range
Dim last&
last = Range("A65536").End(xlUp).Row
For i = 2 To last
'test for all cells having values here
Range("F" & i).FormulaR1C1 = _
"=AVERAGE(R[-4]C[-2],R[-2]C[-2],RC[-2],R[2]C[-2],R[5]C[-2],)"
Next i
End Sub
***编辑2:为了更清楚我在寻找什么,我想要这样的东西:
Dim i%
Dim last&
last = Range("A65536").End(xlUp).Row
For i = 2 To last
While Range("D" & i - 4).Value <> "" And Range("D" & i + 4).Value <> ""
Range("F" & i).FormulaR1C1 = _
"AVERAGE(R[-4]C[-2],R[-2]C[-2],RC[-2],R[2]C[-2],R[5]C[-2]))"
Wend
Next i
但是我的 while 语句给我带来了麻烦,因为当我到达代码中的那个点时,我不断收到错误消息。我也试过:
While Range("D" & i - 4 And "D" & i + 4).Value <> ""
这给了我运行时错误 13:类型不匹配。
【问题讨论】:
-
如果单元格没有值,您希望单元格保持空白(没有值或公式)?
-
当 i 的值 R[-4] 有点混淆
-
如果在Excel中直接把公式说F2,会是什么?
-
蒂姆,没错。 Siddharth - 它循环到列的底部,该列也没有任何值。
-
我删除了我的帖子。让我在里面返工并回帖