Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function VBA查找功能可以';找不到给定的值_Function_Vba_Excel_Find - Fatal编程技术网

Function VBA查找功能可以';找不到给定的值

Function VBA查找功能可以';找不到给定的值,function,vba,excel,find,Function,Vba,Excel,Find,我编写了一个程序,在某一点上,在一行中搜索给定的供应商名称,然后从该列中提取该供应商的项目成本。电子表格中的供应商名称直接从封面中提取,程序从同一来源读取供应商名称。这个程序在80多个单独的excel文件中,并且在几乎每一个文件中都运行良好。然而,有两三个在给定的范围内找不到任何值,尽管事实上我正在寻找我试图搜索的值。我尝试在Excel中手动使用find函数,但它也找不到字符串。什么会阻止Excel查找这些值 With Worksheets("Decision Matrix Summary")

我编写了一个程序,在某一点上,在一行中搜索给定的供应商名称,然后从该列中提取该供应商的项目成本。电子表格中的供应商名称直接从封面中提取,程序从同一来源读取供应商名称。这个程序在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
和工作表(“决策矩阵摘要”)
m=0
对于范围内的每个c(“N23:N42”)
如果c.值为0,则
m=m+1
供应商=c.偏移量(0,-13).值
工作表(“供应商成本比较”)。单元格(2,m+1)=供应商
设置单元格=工作表(“投标表格汇总”)。行(“9”)。查找(what:=供应商,after:=工作表(“投标表格汇总”)。单元格(9,1)_
LookIn:=xlValues,lookat:=xlPart,searchorder:=xlByColumns,searchdirection:=xlNext_
MatchCase:=False,searchformat:=False)
如果不是的话,那细胞就什么都不是了
底部单元格=单元格偏移量(60000,0).地址
单元格=工作表(“投标表格汇总”)。范围(底部单元格)。结束(xlUp)。地址
工作表(“供应商成本比较”)。单元格(3,m+1)。值=工作表(“投标表格汇总”)。范围(单元格)。值
其他的
MsgBox(“在投标一览表摘要中找不到供应商。请参阅供应商成本比较选项卡以确定哪个供应商。”)
Error=“非常是”
出口接头
如果结束
否则:如果
下一个
以
非常感谢您的帮助。谢谢


编辑:我修好了。我从要查找值的单元格中清除了格式,然后重新输入了公式。是否存在阻止搜索单元格的格式?我将函数设置为忽略格式设置,因此据我所知,这不应该是一个问题。如果有人能告诉我这方面的任何信息,我将不胜感激。

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

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


如果将
Lookin:=xlValues
更改为
Lookin:=xlFormulas
,它仍然会找到它,不过,作为一种解决方法,我首先使用
xlValues
进行查找,然后如果范围仍然为零,则使用
xlFormulas
进行查找。现在它可以正常工作了。

最明显的解释是单元格中的值不是您认为的值。你能提供几个例子吗?你检查过任何流氓字符吗?试着用
what:=Trim(vendor)
代替
what:=vendor
也检查chnaging
LookIn:=xlValues
LookIn:=xlFormulas
是否有区别?你正在硬编码工作表的名称。。。可能工作表名称已被修改?感谢您的回复!我在初步排除故障的同时完成了所有这些建议;唯一的例外是修剪(供应商)添加,这并没有产生任何影响。谢天谢地,我想出了一个解决办法;请参考我的编辑。我仍然不知道最初是什么阻止了find函数的工作。