excel - 如何使我的 VBA 错误处理更有效率

标签 excel vba performance error-handling foreach

我已经为每个循环都写了这个,它给出了我正在寻找的结果,但是当我单步执行代码时,它似乎在重复错误处理程序,因此运行速度很慢。有没有办法让它更高效地运行?

我根本需要错误处理的原因是因为它循环遍历 VLOOKUP 中的值并且某些单元格包含错误。

For Each cell In maxStockRange
        On Error GoTo ErrorValue
        If cell.value = "0" Then
            cell.value = ""
        End If
ErrorValue:
            If cell.Text = "#N/A" Then
                cell.value = ""
            End If
            Resume Next
    Next cell

最佳答案

Option Explicit

Sub cleanDataUsingErrorHandling()

    Dim cell As Range
    Dim maxStockRange As Range
    
    Set maxStockRange = Sheet1.Range("A1:A4")
    
    For Each cell In maxStockRange
        On Error GoTo ErrorValue
        If cell.Value = "0" Then
            cell.Value = ""
        End If
        GoTo nextIteration
        
ErrorValue:
        If cell.Text = "#N/A" Then
            cell.Value = ""
        End If
        Resume nextIteration
        
nextIteration:
    Next cell
End Sub

关于excel - 如何使我的 VBA 错误处理更有效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71106420/

相关文章:

java - 延迟加载 PDF

excel - tsql 导出和附加 SSRS 报告到电子邮件?

excel - VBA 文本框,需要 2 个单元格的多个引用

vba - 如何在excel vba中调用ThisWorkbook中的模块

ms-access - Access 2010 64bit 是否有打开文件对话框?

excel - 第三方 .xll 中可用的函数和方法

vba - 根据另一列中的值向上和向下填充多列中的单元格

mysql - Perl 模块 : MySQL vs DBI

excel - 显示选项卡是否隐藏的工作表公式

php - PHP 中什么更快,单引号还是双引号?