如何搜索实际数字不是绝对的

时间:2016-03-24 06:47:16

标签: vba excel-vba excel

我写了一个程序,它会从vba中的一个范围中找到一个数字值并返回单元格的地址,但是程序会以绝对形式搜索不是实际值的数字。例如,当我搜索范围为0.5时,在范围内有-0.5,如果它首先出现,它将给出-0.5的位置。有没有办法让程序搜索实际的而不是绝对数字?这是该计划:

{{1}}

1 个答案:

答案 0 :(得分:3)

好的,首先,不要使用Goto。只是谷歌,我不想写下百万分之一的原因。但是goto是非常糟糕的做法。

关于您的实际问题,请尝试将LookAt:=xlWhole参数添加到.Find功能中。这样它只会找到整个搜索值匹配的单元格。

Set c = ActiveSheet.Cells(indicated.Row + n, Indicated.Column).Find(minvalue.Value, LookIn:=xlValues, LookAt:=xlWhole)

要避免goto,请按以下方式编写:

For n = 0 To indicated.Rows.Count - 1
   Set c = ActiveSheet.Cells(indicated.Row + n, indicated.Column).Find(minvalue.Value, LookIn:=xlValues, LookAt:=xlWhole)
Next
if c is nothing then
  For n = 0 To reference.Rows.Count - 1
     Set c = ActiveSheet.Cells(reference.Row+n, reference.Column).Find(minvalue.Value, LookIn:=xlValues, LookAt:=xlWhole)
  Next
End If

If Not c Is Nothing Then
   findvalue = c.Address
   findvaluerow = c.Row
   findvaluecolumn = c.Column
Else
   findvalue = 0
End If

更清洁,更明亮,更易于阅读和关注。是一样的,但也有效。 :)