我有一个VBA代码,在其他工作簿的所有工作表中搜索一个值,然后在源文件中写入yes或no。我在循环中使用.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
有什么问题?
答案 0 :(得分:0)
我发现了这个问题。我的代码在定义搜索值时缺少thisworkbook.sheets字符串,所以当它设置它时,它会得到一个空单元格,这会给我错误的结果。现在工作正常,谢谢大家的帮助。