Vba .查找空单元格

Vba .查找空单元格,vba,excel,find,Vba,Excel,Find,我有一个VBA代码,它在另一个工作簿的所有工作表中搜索一个值,然后在源文件中写入“是”或“否”。我在一个循环中使用.find参数,以便在所有工作表中搜索,而在另一个循环中使用.find参数,以便搜索多个值。搜索的值设置为变量。事实证明,当我查看一个样本时,如果它做得对,有时它会返回一个空单元格的地址,例如:搜索的值是8,它说它找到了值,但当我查看它的地址时,它是一个空单元格,所以实际上,查找并没有真正起作用 另外,我使用源文件中的一个值设置了一个变量,该值必须与结果的单元格偏移量值相同,如果不是

我有一个VBA代码,它在另一个工作簿的所有工作表中搜索一个值,然后在源文件中写入“是”或“否”。我在一个循环中使用.find参数,以便在所有工作表中搜索,而在另一个循环中使用.find参数,以便搜索多个值。搜索的值设置为变量。事实证明,当我查看一个样本时,如果它做得对,有时它会返回一个空单元格的地址,例如:搜索的值是8,它说它找到了值,但当我查看它的地址时,它是一个空单元格,所以实际上,查找并没有真正起作用

另外,我使用源文件中的一个值设置了一个变量,该值必须与结果的单元格偏移量值相同,如果不是,我让代码继续搜索。当它发现这个空单元格时,它停止了,我不知道为什么

代码是这样的,我留下了一些没有用的部分

dim NFE as range
dim searchedvalue as range
dim validation as range
dim sh as worksheet, wb as workbook

set searchedvalue = thisworkbook.worksheets (name).range
set validation = thisworkbook.worksheets (name).range
for each sh in wb.worksheets
set nfe = Workbooks(wbname).Sheets(sh.Name).Columns([column]).Find(searchedvalue, LookIn:=xlValues, lookat:=xlWhole)
if nfe.offset ().value = validation then
exit for
thisworkbook.range().value = "yes"
else
thisworkbook.range ().value = "no"
end if
next sh

怎么了?

我发现了这个问题。我的代码在定义searchedvalue时缺少thisworkbook.sheets字符串,因此当它设置它时,它将得到一个空单元格,这将给我错误的结果。现在工作正常,谢谢大家的帮助。

searchedvalue是一个范围而不是一个值。还有,为什么这与验证相同?@findwindow我不确定我是否理解。。。这实际上是我搜索的结果,甚至这里的一些问题,我真的不知道为什么它被设置为范围。无论如何,validation和searchedvalue都是源文件中特定单元格内的值。您将其声明为一个范围。。。。dim searchedvalue as range XD虽然您可能做了值得称赞的研究,但您可能不理解代码XD如果您仔细看一看,这两个变量都设置为相同的值thisworkbook.worksheets name.range XD发布伪代码比发布实际代码更糟糕。这意味着我在浪费时间寻找细节。