我编写了一个程序,在某一点上,搜索一行给定的供应商名称,然后从该列中提取该供应商的项目成本。电子表格中的供应商名称直接从封面页中提取,程序从同一来源读取供应商名称。这个程序有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
非常感谢任何帮助。谢谢!
编辑:我修好了。我从要查找值的单元格中清除了格式,然后重新输入公式。是否有一种格式可以阻止搜索单元格?我将函数设置为忽略格式化,所以据我所知,这应该不是问题。我很感激任何人都有这方面的信息。答案 0 :(得分:0)
我修好了。我从要查找值的单元格中清除了格式,然后重新输入公式。 Excel和VBA中的查找功能成功找到搜索范围中的值,并通过我的程序返回该单元格的正确位置。
答案 1 :(得分:0)
我知道这是一个老问题,但这是我在寻找同一问题的解决方案时遇到的问题之一。它不是导致问题的格式。出于某种原因,Excel不会将单元格的内容识别为值。我甚至没有在我的范围内有任何公式,但它不会认识到其中一些是一个值。
但是,如果您将Lookin:=xlValues
更改为Lookin:=xlFormulas
,它仍会找到它,因此,作为解决方法,我首先使用xlValues
执行查找,然后如果范围仍然没有,用xlFormulas
做了查找。现在它工作正常。