Excel vba如何实现查找多个值之一?

LON CX HKG CX CAN CX HKG CX LON.这是一个单元格里面的文本,一列里面有n个种单元格,里面的英文会变化,各种各样的,打个比方里面的CAN可以变成CTU/XMN/XIY/BJS等等。在excel 函数里我用if(or(isnumber(search({"CAN","CTU","XMN"..等等},这样来达到一个目的,这一列哪些单元格是包含我需要的那堆CTU,XMN,XIY的。VBA里面如何实现判断这个单元格是否有我需要找的那堆城市英文,只有有其中一个就行,不需要都有

把你的城市写入字典或数组。
循环单元格,每循环到的单元格再嵌套个循环,这个循环要循环字典的key或者数组进行判断,方法可以用like进行模糊判断,也可以用instr函数查找看能不能知道相应的字符串位置。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-16
excel表格中怎样同时搜索多个数据

1.打开编辑的excel文件。图所示。一个excel工作簿当中有excel工作表。且每个excel工作表中都了一些简单的数据。假设我们需要查找数据0.

2.传统的办法是输入快捷键Ctrl F。在打开的输入框中输入0,点击查找全部,显示结果如下图所示。显然,这不是我们需要的结果。

3.其实,只要改变一个小小的参数,就可以实现精确查找了!方法如下:同样按Ctrl F弹出查找窗口,点击窗口右侧的选项。如下图所示。

4.下拉查找范围列表,在工作表和工作簿两个选项中果断选择工作簿。点击查找全部即可。

5.此时查找框中出现了精确查找结果。点击具体内容即可找到其详细信息以便后续编辑。
第2个回答  2021-04-16
在VBA中判断单元格中是否存在特定文本,一般使用InStr函数,例如:
if InStr(range("a1"), "CTU")>0 then msgbox "A1 包含CTU"
如果需要判断是否包含多个的全部、或者之一,标准做法是使用AND、OR的逻辑,如果判断的个数太多,可以使用循环,下面的例子代码执行完毕后变量chk的值为True表示A1同时包含"CAN","CTU","XMN"三项:
chk=True
s=Range("a1")
for each t in array("CAN","CTU","XMN")
if InStr(s, t)=0 then chk=False
next t
下面的代码结束后任意包含其中一项就为True:
chk=False
s=Range("a1")
for each t in array("CAN","CTU","XMN")
if InStr(s, t)>0 then chk=True
next t本回答被网友采纳