VBA 在文本行中搜索值

Posted

技术标签:

【中文标题】VBA 在文本行中搜索值【英文标题】:VBA Search for values within rows of text 【发布时间】:2021-12-21 12:28:09 【问题描述】:

我是 VBA 的新手,如果我能在这方面获得任何帮助,我将不胜感激。

我有一个带有两个工作表的 Excel 工作簿。 Vendors 在 A 列中包含供应商列表,Products 在 F 列中包含 Item Name,其中包含带有供应商名称和项目描述的字符串。

我正在尝试遍历供应商列表 (100+) 并在“项目名称”列中搜索该供应商名称,如果有供应商匹配,则突出显示该行。

我一直在查看帖子,并且能够找到并突出显示静态搜索值的匹配项,但我无法找到任何可以通过循环访问供应商名称来继续搜索的内容。

您能提供的任何见解将不胜感激。

【问题讨论】:

您可以使用 vlookup 或 xlookup 查看单元格突出显示。不需要 VBA。 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

抱歉,如果这不是您想要的,但它可能会实现类似的目标。

您可以使用数组公式来确定哪些供应商出现在产品表中,以及哪些产品包含在供应商表中找到的供应商。如您所见,这不依赖于包含任何固定模式的供应商或产品名称。

单元格 B3 包含以下内容:

=PRODUCT(--(SUBSTITUTE(Table2[Products],A3,"")=Table2[Products]))=0

单元格 E3 包含以下内容:

=SUM(LEN(D3)-LEN(SUBSTITUTE(D3,Table1[Vendors],"")))>0

您可以在此处使用条件格式突出显示计算结果为 TRUE 的行。

【讨论】:

谢谢布莱恩!这非常有效,而且比我尝试做的要容易得多。

以上是关于VBA 在文本行中搜索值的主要内容,如果未能解决你的问题,请参考以下文章

高分跪求 VBA word中实现循环搜索 并在WORD中找到列表 再根据已有数据自动填写进本行其它列

使用excel vba将特定文本行保留在单元格中以获取特定起始字母

VBA宏在Excel中格式化1个包含文本行的单元格,并将这些行添加到单独的行中

如何从包装的文本单元格中提取特定的文本行?

文本输入 Excel VBA 上的文本框文本消失 - 第 2 部分

如何在文本区域标签中的特定光标位置插入选择标签下拉值作为文本片段?