【发布时间】:2012-04-15 22:02:29
【问题描述】:
我有一个数据范围,来自一个类型范围变量中的 vba 提示。然后我试图通过这个范围,对于每个空单元格,用它的列的平均值替换它。
我可以很好地替换空单元格,但它会得到我正在努力的每一列的平均值。有没有简单的方法?
我不想为每一列做一个循环,为每一行做一个循环,然后使用 total/numberOfNonEmptyCells 计算它,因为这需要相当长的时间(而且我显然在这里做错了,因为我得到错误的值)...但我确定这不是唯一或正确的方法。
有没有什么说法:
对于每一列
从范围中获取第 i 列
获取该列的平均值。
把它放在一个数组中。
然后循环使用该值替换空单元格?
或者,更好的方法是在空单元格中输入公式= AVERAGE(Column from Range)
我使用AVERAGE(Range.Columns,1) 尝试了这个,但它不起作用,因为它是 Column 类型,我相信哪个平均值不起作用。
最简单的方法我将标记为答案。它需要使用宏,而不仅仅是手动输入公式,因为它适用于很多工作表上的大量数据。
谢谢。
【问题讨论】:
-
avg = Application.WorksheetFunction.Average(Range.Columns(1)) -
@TimWilliams 正如我之前所说,你确实剥夺了自己应得的答案
-
谢谢蒂姆,我会试一试