如何检查整个 Excel 工作表中公式中的特定文本?

How to check an entire Excel worksheet for specific text in formulas?

我正在寻找一个公式,如果该工作表中的任何公式包含 "SUMIF",它将检查整个工作表。如果有,公式应该return"Yes",否则"No".

尝试以下用户定义函数:

Public Function Zum(rng As Range) As String
    Dim r2 As Range, r3 As Range
    Set r2 = rng

    On Error GoTo out
        Set r3 = r2.Cells.SpecialCells(xlCellTypeFormulas)
    On Error Resume Next
    For Each r In r3
        t = r.Formula
        If InStr(t, "SUMIF") > 0 Then
            Zum = "Yes"
            Exit Function
        End If
    Next r
out:
    Zum = "No"
End Function

它基于 Range,但您可以将范围设置为任何特定工作表上的所有单元格。例如要测试 Sheet2,把它放在 Sheet1:

中的任何单元格
=ZUM(Sheet2!1:1048576)

您需要执行以下操作:

  1. Select 一个范围并命名。这样您以后就可以在公式中使用它
  2. 使用带名称范围的COUNTIF公式。

    =COUNTIF(YourRange, "=SUMIF")

  3. IF 公式将其包围以将 1 或 0 转换为 "Yes" 或 "No"

    =IF(COUNTIF(YourRange, "=SUMIF")=1, "Yes", "No")

对于公式路线,必须限制搜索:

=IF(SUMPRODUCT(--(ISNUMBER(SEARCH("=SUMIF",FORMULATEXT(Sheet2!A1:Z100))))),"Yes","No")

尝试做一个整体 sheet 会由于内存不足而导致错误。