标签:
杂谈 |
http://zhidao.baidu.com/question/263644723.html?fr=uc_push&push=core&group=1 vlookup第二个参数包含多个区域怎么写, 例:=VLookup(A1,Sheet2的A:B加上sheet3的A:B加上……,2,0) 浏览次数:13次悬赏分:30 |
离问题结束还有 14 天 22 小时 | 提问者:lianzhiye |
检举
Public Function iFun(c As Range, n As Integer, ParamArray a() As Variant) '定义一个函数iFun() '()内是参数列表,见上面的说明 Application.Volatile '将函数定义为易失性函数(当参数的值改动时,自动重算) On Error GoTo 100 '发生错误时,跳到行 100处,执行最后一句 Dim i As Integer, t As Range, tt As Boolean '定义 个变量 i = a(LBound(a)).Columns.Count '取得第一个工作表区域的列的数量 If i < n Then iFun = "#错误n": Exit Function '如果列数小于参数n,报错"#错误n"并退出 For i = LBound(a) To UBound(a) '循环每个参数a(每个工作表区域) Set t = a(i).Columns(1).Find(c.Value, , xlValues, xlWhole) '在每个工作表区域中,查找 第一个参数c的值,赋值给t变量 If Not (t Is Nothing) Then tt = True: Exit For '如果找到了,就退出 Next '没有找到就继续找,直到循环完毕 If tt Then iFun = t.Offset(0, n - 1).Value Else iFun = "#N/A" '循环完毕后,判断是否找到, '如果找到,就取得同行的后面列的值, '如果没找到,返回结果"#N/A" Exit Function '如果程序没有出错,正常退出 100: '行 iFun = "#错误0" '错误时,跳到此处,返回并报错"#错误0" End Function ------------
|