Excel 执行vlookup直到没有错误
我想让一个vlookup跑。如果失败,我想将查找值增加1,然后再次运行vlookup。我想继续这个过程直到vlookup成功 我该怎么办Excel 执行vlookup直到没有错误,excel,vlookup,vba,Excel,Vlookup,Vba,我想让一个vlookup跑。如果失败,我想将查找值增加1,然后再次运行vlookup。我想继续这个过程直到vlookup成功 我该怎么办 我尝试过使用一些循环和错误处理,但我对宏还不熟悉,所以我还没有找到任何可以工作的方法。可能是这样的 dim findThis as long, maxThis as long, var as variant, result as variant with worksheets("MyWorksheet") maxThis = application.
我尝试过使用一些循环和错误处理,但我对宏还不熟悉,所以我还没有找到任何可以工作的方法。可能是这样的
dim findThis as long, maxThis as long, var as variant, result as variant
with worksheets("MyWorksheet")
maxThis = application.max(.columns("A"))
for findThis = (Date - 100) to maxThis step 1
var = application.match(findthis, .columns("A"), 0)
if not iserror(var) then exit for
next findthis
if findthis <= maxthis then
result = application.index(.columns("Z"), var)
'alternate
result = .Cells(var, "Z").value
debug.print result
end if
end with
dim find此为long,maxThis为long,var为variant,result为variant
带工作表(“我的工作表”)
maxThis=application.max(.columns(“A”))
对于findThis=(日期-100)到maxThis step 1
var=application.match(findthis、.columns(“A”),0)
如果不是iserror(var),则退出
下一个找到这个
如果找到了,你有一些样本数据吗?很可能有更好的方法来实现这一点,以及数据,请提供代码。查找值列是按时间顺序排列的日期,缺少随机日期。(我使用递增查找值1来简化问题)。在VBA代码中,使用应用程序.match
而不是工作表函数.vlookup
。它速度更快,并具有其他特性。将返回的值传递到变量中,并使用iserror
确定是否成功。成功后,使用变量作为application.index
中的行号返回结果。