我有一个电子表格,其中包含许多请求数据的函数调用。我正在编写一个函数(在 VBA 中)来检查任何单元格是否包含错误值“#VALUE”等。
目前,我正在逐行、逐列地迭代,首先检查单元格是否包含公式,如果包含,则检查 instr 中的“#VALUE”、“#N/A”等。
但是,我想知道是否会更快地模拟在 excel 中单击整个列,然后在 VBA 中单击“ctrl + f”获取值……。
什么是最有效的方法?我正在检查一张 27 列 x 1200 行的表格。
编辑我刚刚意识到有些单元格有“#N/A”,这是因为它们不包含特定的公式。我只需要在包含特定公式的单元格中搜索......这可能吗?
EDIT2 我实际上需要记录一个返回结果的宏,就像“查找全部”一样。我用过“查找”,我可以得到一个 bool 值,但“查找所有”不记录任何 VBA 代码....
最佳答案
您可以使用 SpecialCells
只返回包含错误的单元格。
Sub Demo()
Dim sh As Worksheet
Dim rng As Range, cl As Range
For Each sh In ActiveWorkbook.Worksheets
Set rng = Nothing
On Error Resume Next
Set rng = sh.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors)
On Error GoTo 0
If rng Is Nothing Then
Debug.Print "No Errors"
Else
For Each cl In rng
If cl.Formula Like "*" Then ' <-- replace * with your criteria
Debug.Print cl.Address
End If
Next
End If
Next
End Sub
关于vba - 检查大量单元格的最有效技术是否包含错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268348/