VBA查找功能找不到给定值

时间:2013-11-22 18:52:19

标签: excel function vba excel-vba find

我编写了一个程序,在某一点上,搜索一行给定的供应商名称,然后从该列中提取该供应商的项目成本。电子表格中的供应商名称直接从封面页中提取,程序从同一来源读取供应商名称。这个程序有80多个单独的excel文件,几乎每一个都可以很好地工作。但是,有两个或三个在给定范围内找不到任何值,尽管事实上我正在寻找我正在尝试搜索的值。我尝试在Excel中手动使用find函数,但也无法找到该字符串。什么可能阻止Excel查找这些值?

With Worksheets("Decision Matrix Summary")
    m = 0
    For Each c In .Range("N23:N42")
        If c.Value <= 10 And c.Value > 0 Then
            m = m + 1
            vendor = c.Offset(0, -13).Value
            Worksheets("Supplier Cost Comparison").Cells(2, m + 1) = vendor
            Set cell = Worksheets("Bid Tabulation Summary").Rows("9").Find(what:=vendor, after:=Worksheets("Bid Tabulation Summary").Cells(9, 1), _
                LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByColumns, searchdirection:=xlNext, _
                MatchCase:=False, searchformat:=False)
            If Not cell Is Nothing Then
                bottomcell = cell.Offset(60000, 0).Address
                cell = Worksheets("Bid Tabulation Summary").Range(bottomcell).End(xlUp).Address
                Worksheets("Supplier Cost Comparison").Cells(3, m + 1).Value = Worksheets("Bid Tabulation Summary").Range(cell).Value
            Else
            MsgBox ("A vendor could not be found in the Bid Tabulation Summary. Please refer to the Supplier Cost Comparison tab to determine which vendor.")
            Error = "Very Yes"
            Exit Sub
            End If
        Else: End If
    Next
End With

非常感谢任何帮助。谢谢!

编辑:我修好了。我从要查找值的单元格中清除了格式,然后重新输入公式。是否有一种格式可以阻止搜索单元格?我将函数设置为忽略格式化,所以据我所知,这应该不是问题。我很感激任何人都有这方面的信息。

2 个答案:

答案 0 :(得分:0)

我修好了。我从要查找值的单元格中清除了格式,然后重新输入公式。 Excel和VBA中的查找功能成功找到搜索范围中的值,并通过我的程序返回该单元格的正确位置。

答案 1 :(得分:0)

我知道这是一个老问题,但这是我在寻找同一问题的解决方案时遇到的问题之一。它不是导致问题的格式。出于某种原因,Excel不会将单元格的内容识别为值。我甚至没有在我的范围内有任何公式,但它不会认识到其中一些是一个值。

但是,如果您将Lookin:=xlValues更改为Lookin:=xlFormulas,它仍会找到它,因此,作为解决方法,我首先使用xlValues执行查找,然后如果范围仍然没有,用xlFormulas做了查找。现在它工作正常。