vba - 如何排除#VALUE!或#DIV/0!在使用 VBA 计算平均值的列中
问题描述
我有一种情况来计算一列的平均值(该列有许多带有数字的行和一些带有#DIV/0!
and的行#VALUE!
)。
我有一个用于计算平均函数的宏。如果它充满了数字,那么它很容易计算列的平均值,但如果有一些#VALUE!
或#DIV/0!
在一个单元格中。然后它返回空白单元格。如何排除#VALUE!
and#DIV/0!
错误并仅对数字取平均值。
我有超过 5K 文件来计算平均值。
Private Function data As Boolean
Dim Avg_velocity As String
Dim Avg_length As String
Avg_velocity = Application.WorksheetFunction.Average(Sheets("Data").Range("K5:K650"))
Avg_length = Application.WorksheetFunction.Average(Sheets("Data").Range("I7:I607"))
Sheets("Log").Range("A2:AI2").Insert
Sheets("Log").Cells(2, "AA").value = Avg_velocity
Sheets("Log").Cells(2, "AB").value = Avg_length
End Function
解决方案
这样的事情应该可以正常工作:
Option Explicit
Public Sub TestMe()
Dim myRng1 As Range
Dim myCell As Range
Dim myRng2 As Range
Set myRng1 = Range("A1:A5")
For Each myCell In myRng1
If Not IsError(myCell) Then
If Not myRng2 Is Nothing Then
Set myRng2 = Union(myRng2, myCell)
Else
Set myRng2 = myCell
End If
End If
Next myCell
If Not myRng2 Is Nothing Then myRng2.Select
End Sub
它通过范围并仅拾取不是错误的单元格:
推荐阅读
- php - Laravel 8 PHPUnit 测试失败——Illuminate\Contracts\Filesystem\FileNotFoundException:路径中不存在文件
- mysql - 需要 MySQL REGEXP 查询以忽略句尾的句点
- php - PHP如何组合数组并创建新数组
- c++ - 执行 n 次浮点数加法还是一次整数乘法更好?
- c# - 多处理中程序集引用的共享内存
- python - 定义并设为全局变量后未在子程序中定义变量
- bigdata - 大数据结构
- git - Git如何签出提交进行一些更改并将其推送回相同的提交
- postgresql - PostgreSQL 空连接
- python - 包含 pybindIETFXMLEncoder 类的用户何时可以使用下一个 pyangbind 版本