如何检查整个 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)
您需要执行以下操作:
- Select 一个范围并命名。这样您以后就可以在公式中使用它
使用带名称范围的COUNTIF
公式。
=COUNTIF(YourRange, "=SUMIF")
用 IF
公式将其包围以将 1 或 0 转换为 "Yes" 或 "No"
=IF(COUNTIF(YourRange, "=SUMIF")=1, "Yes", "No")
对于公式路线,必须限制搜索:
=IF(SUMPRODUCT(--(ISNUMBER(SEARCH("=SUMIF",FORMULATEXT(Sheet2!A1:Z100))))),"Yes","No")
尝试做一个整体 sheet 会由于内存不足而导致错误。
我正在寻找一个公式,如果该工作表中的任何公式包含 "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)
您需要执行以下操作:
- Select 一个范围并命名。这样您以后就可以在公式中使用它
使用带名称范围的
COUNTIF
公式。=COUNTIF(YourRange, "=SUMIF")
用
IF
公式将其包围以将 1 或 0 转换为 "Yes" 或 "No"=IF(COUNTIF(YourRange, "=SUMIF")=1, "Yes", "No")
对于公式路线,必须限制搜索:
=IF(SUMPRODUCT(--(ISNUMBER(SEARCH("=SUMIF",FORMULATEXT(Sheet2!A1:Z100))))),"Yes","No")
尝试做一个整体 sheet 会由于内存不足而导致错误。