将公式添加到 Excel 工作表中的所有现有公式中

将公式添加到 Excel 工作表中的所有现有公式中

我正在为销售和客户服务设置每月呼叫跟踪器。我几乎已经做好了所有准备,但我希望将 IFERROR 函数添加到工作表中所有包含公式的单元格中。有没有统一的方法可以做到这一点,还是我必须一次一个地做。下面是我正在使用的不同公式的示例。

=COUNTIFS('JAN DATA'!H:H,"Commercial",'JAN DATA'!I:I,"New Sales")

=SUM(SUMIFS('JAN DATA'!G:G,'JAN DATA'!H:H,"Commercial",'JAN DATA'!I:I,"New Sales"),SUMIFS('JAN DATA'!G:G,'JAN DATA'!H:H,"Commercial",'JAN DATA'!I:I,"Inspection"))/(E4+E5),"")

我正在跟踪 15 个人,每个人每月大约有 5 行唯一代码。

答案1

文章 如何将 IFERROR 批量插入到现有的 Excel 公式中! 解释说,如果您不想更新每个公式,也许使用复制粘贴来更新部分IFERROR(,那么您需要使用 VBA 宏。

建议的宏是:

Sub insertIFERRORtoCells()
    On Error Resume Next
    Dim result As String
    result = InputBox("What text should be displayed in case of an error?", "Insert IFERROR function: Error Text")
    If StrPtr(result) <> 0 Then
        For Each cell In Selection.Cells
            On Error Resume Next
            If cell.HasFormula Then
                cell.Formula = "=IFERROR(" & Right(cell.Formula, Len(cell.Formula) - 1) & "," & result & ")"
            End If
        Next
    End If
End Sub

文章添加了以下注释:

上述 VBA 宏解决了其目的。然而,它也有一些缺点:

  • 所有公式都必须以 = 符号开头。以=-或开头的公式=+可能会导致错误。
  • 如果您现有的公式已经具有 IFERROR 函数,则它将不会被替换,但会添加一个额外的 IFERROR 函数。
  • 当然,它也具有 VBA 宏的所有其他缺点(例如,它仅限于本地可用、难以维护等)

因此,请仔细测试此 VBA 宏,并在使用前最好保存文件的备份!

相关内容