如何在VBA Excel中使用FIND函数search一个数字?

我试图find我的这个问题的解决scheme,我尝试使用查找function来search一个数字。 假设我在Sheet1中有以下设置数据,并从第1行列A开始:

ABCDEFG No Date Code Name Remarks D ebit Cr edit 1 4/30/2015 004/AB/01/04/15 Anna YES 40239.66 0.00 2 2/16/2015 028/AA/01/02/15 Andy NO 0.00 2205.49 3 1/31/2015 021/DR/04/01/15 Jim YES 167.60 0.00 4 7/14/2015 083/RF/01/07/15 Anna YES 3822.60 0.00 5 8/6/2015 030/AB/01/08/15 Anna NO 0.00 11267.96 6 1/15/2015 020/TY/01/01/15 Barry 0.00 5237.84 7 7/14/2015 024/HU/01/07/15 Anna NO 0.00 3822.60 8 1/31/2015 039/JK/01/01/15 YES 0.00 1780.84 9 1/27/2015 007/ER/01/01/15 Jim NO 5237.84 0.00 10 4/29/2015 077/FX/01/04/15 Barry NO 0.00 40239.66 11 1/3/2015 001/OX/10/01/15 Andy NO 33074.03 0.00 12 8/10/2015 001/PR/01/08/15 Nicholas 11267.96 0.00 13 10/31/2015 007/TX/09/10/15 Jim 1780.84 0.00 14 2/28/2015 071/QR/01/02/15 Andy YES 2205.49 0.00 15 1/7/2015 007/OM/02/01/15 Nicholas 8873.25 0.00 

我从下面的简单代码开始,在Range("G:G")find数字40239.66,并返回Cells(2, "H")中匹配数字的行Cells(2, "H")

 Sub Test_1() Dim ValueToFind With Sheets("Sheet1").Range("G:G") ValueToFind = .Cells(2, "F").Value Set FindValue = .Find(what:=ValueToFind, LookIn:=xlValues) If Not FindValue Is Nothing Then FirstValue = FindValue.Row Do .Cells(2, "H") = FindValue.Row Exit Do Loop While Not FindValue Is Nothing And FindValue.Rows <> FirstValue Else .Cells(2, "H") = "Not match" End If End With End Sub 

虽然在上面的代码中没有错误,但在Cells(2, "H")没有发现任何错误。 如果我用它来find一个文本的代码确实工作。 我试图通过在线search来解决这个问题,但我无法find明确的答案。 我所能find的只是如何使用Find函数来search文本,而不是数字。 当然,我通过所有的build议,我可以find像清除:从我想要查找值的范围清除格式或更改的Lookin:=xlValues Lookin:=xlFormulas ,但他们没有任何区别。 有人可以帮我吗? 提前致谢。

此代码将永远不会.Cells(2, "F")find值,因为赋值位于With块内部。 你试图索引到“F”列,但是.Cells(2, "F")引用的范围是Sheets("Sheet1").Range("G:G") 。 在该范围内没有“F”列,因此ValueToFind始终vbEmpty 。 用这个replace那条线

 ValueToFind = Sheet1.Cells(2, "F").Value 

…工作得很好。