检查大量单元格的最有效技术是否包含错误?

mez*_*hic 6 excel vba excel-vba

我有一个电子表格,其中包含许多请求数据的函数调用.我正在编写一个函数(在VBA中)来检查是否有任何单元格包含错误值"#VALUE"等.

目前我逐行逐行迭代,首先检查单元格是否包含公式,如果是,则检查instr为"#VALUE","#N/A"等.

但是,我想知道是否可以更快地模拟在Excel中单击整列,然后在CBA中"ctrl + f"获取值...

什么是最有效的方式?我正在检查27列×1200行大的表.

编辑我刚刚意识到有些单元格有"#N/A",这是因为它们不包含特定的公式.我只需要搜索包含特定公式的单元格......这可能吗?

EDIT2我实际上需要记录一个返回resutls的宏,就像"find all"一样.我使用"查找",我可以得到一个布尔值,但"找到所有"并没有记录任何VBA代码....

chr*_*sen 6

您可以使用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
Run Code Online (Sandbox Code Playgroud)