如何在 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 测试条件是否不满足