如何检测某些单元格是否包含具有特定文本/符号的特定公式?
1. A formula which is =today(), or =date(), or =time()
2. A formula which starts with =(any alphabet letter)
3. A cell which starts with '
4. A formula which ends with any number
我使用条件格式中的公式。
谢谢。
答案1
1、2、n 4 的答案:
1a) =IF(FORMULATEXT(A1)="=TODAY()",1,0)
1b) =IF(LEFT(FORMULATEXT(A1),5)="=TIME",1,0)
1c ) [ 编辑 1b 解决方案 ]
2) =IF(AND(CODE(MID(FORMULATEXT(A1),2,1))>=65,CODE(MID(FORMULATEXT(A1),2,1))<=90),1,0)
[ 您可以参考帮助文件中 code() 的详细信息.. (: ]
4) =IF(AND(code(right(FORMULATEXT(A1),1))>=48,CODE(right(FORMULATEXT(A1),1))<=57),1,0)
希望能帮助到你。
Q3 注意事项:
公式几乎总是以“=”字符开头..它从不以字符开头..除非您实际上指的是文本值..那么您可以使用 if() + left() + edit 来获取 Q2 的解决方案。
请分享您尝试过但没有成功的方法。我会帮助其他人了解您遇到的问题并提供帮助。(:
答案2
问题 3 的答案
打开 VBA 并创建一个宏:
Option Explicit
Function ZIsApostrophe(rng As Range) As Boolean
ZIsApostrophe = rng.PrefixCharacter = "'"
End Function
使用自定义函数ZIsApostrophe()
检查单元格是否以“ ”开头。
例如,输入ZIsApostrophe(A3)
检查单元格 A3 是否以 ' 开头。它将返回值 TRUE 或 FALSE 作为结果。
图片来源:José Augusto
1、2 和 4 的答案
1a ) =IF(FORMULATEXT(A1)="=TODAY()",1,0)
1b ) =IF(LEFT(FORMULATEXT(A1),5)="=TIME",1,0)
1c ) [ 编辑 1b 解决方案 ]
2 ) =IF(AND(CODE(MID(FORMULATEXT(A1),2,1))>=65,CODE(MID(FORMULATEXT(A1),2,1))<=90),1,0)
[ 您可以参考帮助文件中 code() 的详细信息.. (: ]
4 ) =IF(AND(code(right(FORMULATEXT(A1),1))>=48,CODE(right(FORMULATEXT(A1),1))<=57),1,0)
来源:p.菲多特