我试图在两个不同的工作簿中查找相同的值。 当单元格包含字符串时,它工作正常,但是当我试图查看数字时,即使匹配的单元格具有相同的数字,它也不起作用。
任何想法?
strSearch = "123" 'the number to look for
rFound = wks.UsedRange.Find(strSearch, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False)
答案 0 :(得分:1)
如下面的评论中提到的OP post,find
方法不适用于通过公式结果(= 123/10)搜索值,因此出于此目的,您应使用在该范围内的循环,如以下示例:
Sub test()
Dim cl As Range, s$
s = "123"
For Each cl In ActiveSheet.UsedRange
If cl.Value = s Then Debug.Print cl.Address(0, 0)
Next cl
End Sub
试验:
另外,如果您需要找到包含搜索字符串的单元格,那么您可以使用以下内容:
Option Compare Text
Sub test2()
Dim cl As Range, s$
s = "S"
For Each cl In ActiveSheet.UsedRange
If cl.Value Like "*" & s & "*" Then Debug.Print cl.Address(0, 0)
Next cl
End Sub
或:
Sub test3()
Dim cl As Range, s$
s = "123"
For Each cl In ActiveSheet.UsedRange
If InStr(1, cl.Value, s, vbTextCompare) > 0 Then Debug.Print cl.Address(0, 0)
Next cl
End Sub
答案 1 :(得分:-1)
请尝试以下代码。但我认为如果数据量很大,这将会变慢。
strSearch = "123" 'the number to look for
Set wks = ThisWorkbook.Sheets("Sheet1")
For Each cell In wks.UsedRange
srcstr = cell.Value
If InStr(1, srcstr, strSearch, vbTextCompare) > 0 Then
cell.Activate
Exit Sub
End If
Next