用于忽略列中所有 #N/A 值以计算平均值的 VBA 代码

标签 vba excel

我正在寻找一个代码来忽略数据列中的所有#N/A值,并找到所有剩余单元格的平均值,并将该平均值返回到单元格。目前我有这个代码;如果所选数据范围不包含#N/A,则该方法有效,但是如果存在一些#N/A 数据点,则整个平均值将返回为#N/A。

我也尝试过此代码但无济于事(DateRange是用户在我的工作表中指定的日期范围,我想显示单元格O5中返回的值):

Range("O5").Value = Worksheets("Sheet1").Range(DateRange).Formula = "=AVERAGE(IF(ISNUMBER(DateRange)),DateRange"

没有 #N/A 值的工作代码:

Dim DataPts As Range
Set DataPts = Range(FromDateCell, ToDateCell).Offset(0, 1)
Range("O5").Value = Application.Average(DataPts)

提前非常感谢。

最佳答案

我将冒着被否决的风险,给你一个更简单但方便的技巧来尝试:

=AVERAGEIF(myRange,"<1e100")

(前提是您的范围内没有这么大的数字)。

关于用于忽略列中所有 #N/A 值以计算平均值的 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205423/

相关文章:

javascript - 无法使用 .net 在网页中单击“提交”按钮

VBA 错误 "Bubble Up"

PHPExcel 设置 setRowHeight(-1) 和 setWrapText(true) 不会自动调整行的高度

arrays - 增加数组vba中元素的值

vba - Excel 2010 VBA 宏更改另一个文件中模块的内容

arrays - 无法根据 VBA 中另一个工作表中的值的数组过滤掉一个工作表上的行

上一个工作日的Excel公式

excel - 使用宏以编程方式删除我的工作簿中的所有代码

excel - VBA - 在 Evaluate() 中包含自己的函数

php - Excel 日期到字符串转换 excel