在 VBA 中突出显示是否包含在字符串或 TextToColumn 中

在 VBA 中突出显示是否包含在字符串或 TextToColumn 中

我有 1 或 2 个问题,取决于解决方案。

我的单元格中有 001.1、003.1、005.1... 之类的数据。然后,我有一个单元格包含“001.1|005.1”之类的数据。如果可能的话,我想要做的是 - 将这些单个值与未分隔的值进行比较,如果该字符串中包含某些单个值,则突出显示它。

一个可能的解决方案(这不是我真正想要的,因为多出了一行值)是执行“文本到列”,使用分隔符“|”,然后使用条件格式将该单个值与 TextToColumn 的结果进行比较。

我的问题是:是否有可能以某种方式将单个值(E2 =“001.1”等)直接与未分隔的值(E11 =“001.1|003.1”)进行比较?[这是我喜欢的解决方案]

或者如果没有,您能帮我在 VBA 中编写“文本到列”的自定义函数吗?

这是我所拥有的图片。

图片

E2:E7 = 单个值
E11 = 未分隔的字符串
G11、H11、I11 =
右侧“文本到列”窗口的结果 = 使用自定义公式“=OR(E2=$G$11:$I$11)”进行条件格式,以将 E2:E7 与 G11:I11 进行比较

非常感谢。

答案1

选择 E 列 (E2:E7) 中的值,在条件格式中,新建规则,使用公式确定要格式化的单元格,写入:
=COUNTIF($G$11:$I$11,"*"&E2&"*")>0格式
无需在公式中包含 E2:E7,只需选择它以将其包含在条件格式中,
如果 E2 例如在单元格字符串 G11:I11 中,则公式将匹配,如果为 True,它将格式化 E 中相应的单元格
更新
如果您需要与 E11 进行比较,则仅使用:
=COUNTIF($E$11,"*"&E2&"*")>0和格式,
无需分离 E11(文本到列)
然后创建新规则=E2="",不要格式化
在管理规则中单击此规则并单击下方若为真则停止与此规则相同

答案2

如果单个值和连接值都在单个列中,请在条件格式中尝试以下操作:

=ISNUMBER(SEARCH(E2, $E$11))

其中 E2 是 E11 可能子字符串的范围。

像 @yass 回答一样,为添加新规则=E2='',管理规则并检查若为真则停止

相关内容