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

标签 vba excel

我有一个电子表格,其中包含许多请求数据的函数调用。我正在编写一个函数(在 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/

相关文章:

excel - 在 Google Chrome 中使用 VBA 在特定页面上打开 Excel 中的 PDF

excel - 消费/订阅类模块的自定义事件

excel - laravel excel 获取标题和 maatwebsite

database - 对象关闭时不允许操作 - 在第一行创建表语句?

java - 从 Maven 项目资源文件夹 (src/main/resources) 加载 excel(.xlsx/.xls) 文件

vba - Excel 工作表 : Copy data from one workbook to another workbook

excel - 包含多个数据透视表的 VBA Excel 文件大小巨大

excel - 如果值包含未转义的逗号,是否有一种简单的方法来解析逗号分隔的 Key :Value pairs in Excel, Power Query 或 VBA?

linux - 配置 gnuplot 以处理像 excel 这样的时间序列

excel - 通过 XML 读取 Word 文档的内容