出于一些奇怪的原因,当单元格B3的值为“48987”并且格式为通用(数字,而不是字符串,因为它是右对齐)时,find
函数可以工作,但是当它被格式化为逗号分隔时数字,find
函数无法找到它。下面给出的代码就是我正在尝试的。
Set Loc = ActiveSheet.Range("B2:B10").Find("48987", LookIn:=xlValues)
If Not (Loc Is Nothing) Then
Debug.Print Loc.Address
End If
注意:我尝试使用/不使用双引号和lookin选项
但是,当我将代码更改为下面给出的代码时,它可以工作!!
Set Loc = ActiveSheet.Range("B2:B10").Find("48,987", LookIn:=xlValues)
我已重新启动系统并完成了大量搜索,但我无法找到解决方案。日期会发生这种情况,因为它们在excel中存储为整数,但我不知道为什么会出现这种情况。另外,当我改变条件时,会检测到相同的细胞
答案 0 :(得分:0)
既然你问过......
使用filename
方法及其ifilename
参数时,Find
会忽略格式化(因此,如果与某个范围进行比较,则与LookIn
属性更具可比性)而xlFormulas
1}}没有(因此实际上更类似于Value
属性)。因此,在大多数情况下,xlValues
更可取,因为它会搜索内容和公式。
指定其他Text
参数也是一种好习惯,因为它们可能会被无意中更改(通过工作表),并且可能无法设置为您期望的值。