繁体   English   中英

Excel VBA 查找 function 奇数

[英]Excel VBA Find function oddity

简而言之

  • 我正在为“psiTimBeamLabel1”搜索单列范围
  • 出于某种原因,Vba's.Find function 正在寻找“psiTimBeamLabel10”作为匹配项。

背景

我正在搜索一个命名范围(rngCellsList),它是单列单元格。 在失败的情况下 - 我正在寻找的值是“psiTimBeamLabel1”这个项目在列表中出现了几次。 每次在列表中找到它时,我都会进行一些处理。 我的代码解释如下:

Set rngCell = rngCellsList.Find("psiTimBeamLabel1")
strFoundCellAddr = rngCell.Address

Do 

   ... some processing

   Set rngCell = rngCellList.Find("psiTimBeamLabel1",rngCell)

Loop Until rngCell is Nothing or rngCell.Address = strFoundCellAddr

基本上

  1. 搜索范围以查找字符串的第一个实例
  2. 记下第一个实例的地址
  3. 开始一个循环并做一些处理
  4. 在循环结束之前 - 进行另一次搜索,盯着最近找到的位置
  5. 循环直到未找到,或者唯一的实例是第一个找到的位置

到目前为止,这一直很好。 还有其他几个例子,列表中有多个,我的逻辑以前有效。

在这种特殊情况下,我在列表中有几个“psiTimBeamLabel1”实例。 但我也有几个“psiTimBeamLabel10”——由于某种原因,在搜索“psiTimBeamLabel1”时,外观是。查找“psiTimBeamLabel10”

知道为什么或如何解决这个问题吗?

谢谢,肯

请改用For..Each ,因为Like运算符允许您使用负通配符。

For Each rngCell in rngCellsList
If rngCell Like "psiTimBeamLabel1[!0-9]" Then ...
Next rngCell

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM