如何在 vba 中使用 iferror(附示例)


如果 Excel 公式中遇到错误,您可以使用以下基本语法在 VBA 中使用IFERROR函数来显示单元格中的特定值:

 SubIfError ()
    Dim i As Integer
    
    For i = 2 To 11
    Cells(i, 4).Value = WorksheetFunction.IfError(Cells(i, 3).Value, " Formula Error ")
    Next i
End Sub

此特定示例检查当前工作表第三列第 2 行至第 11 行中的每个单元格是否有错误值。

如果遇到错误值,则将“公式错误”值分配给第四列中的相应单元格,否则将第三列中的数值分配给第四列中的相应值。

以下示例展示了如何在实践中使用此语法。

示例:如何在 VBA 中使用 IFERROR

假设我们在 Excel 中有以下数据集,显示不同商店中产品的总收入和销售数量:

C 列使用公式将收入除以销售数量以获得每单位收入。

但请注意,该公式生成的值是#DIV/0!在一些我们尝试除以零的单元格中。

假设我们要创建一个新列来显示这些单元格的“公式错误”。

我们可以创建以下宏来执行此操作:

 SubIfError ()
    Dim i As Integer
    
    For i = 2 To 11
    Cells(i, 4).Value = WorksheetFunction.IfError(Cells(i, 3).Value, " Formula Error ")
    Next i
End Sub

当我们运行这个宏时,我们会收到以下输出:

D 列中的值显示 C 列中公式的结果,或者显示“公式错误”值(如果显示错误值)。

请随意更改代码中IfError方法中的“公式错误”,以在遇到错误时显示您想要的值。

注意:您可以在此处找到 VBA IfError方法的完整文档。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何使用 IF OR 测试多个条件
VBA:如何使用 IF AND 测试多个条件
VBA:如何使用 IF NOT 测试条件是否不满足

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注