首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个“VLookup”s的VLookup

具有多个“VLookup”s的VLookup
EN

Stack Overflow用户
提问于 2015-10-19 09:43:43
回答 2查看 692关注 0票数 0

我坚持用VBA编写VLookup的正确语法,在VBA中要返回多个列。

通常,您使用{2,3,4,5},但是VBA不认为这是有效的。

代码语言:javascript
复制
Set Sheet1 = ActiveWorkbook.Sheets(1)
Set Sheet2 = ActiveWorkbook.Sheets(2)
Set Sheet3 = ActiveWorkbook.Sheets(2)

result = Application.WorksheetFunction.VLookup(Sheet2.Range("A2"), Sheet1.Range("AA9:AF20"), {2,3,5,6,7,8,9}, False)

我已经在网络上为这个解决方案做了无数次搜索,但是对于如何正确语法{2,3,5,6,7,8,9}并没有一个明确的答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-19 10:15:56

WorksheetFunction无法执行数组公式。Evaluate可以。

所以

代码语言:javascript
复制
sFormula = "VLOOKUP(" & Sheet2.Range("A2").Address(external:=True) & "," & Sheet1.Range("AA9:AF20").Address(external:=True) & ",{2,3,5,6,7,8,9},FALSE)"

result = Evaluate(sFormula)

但是从AAAF只有6列。因此,试图得到列7,8,9将导致一个错误。

所以也许

代码语言:javascript
复制
sFormula = "VLOOKUP(" & Sheet2.Range("A2").Address(external:=True) & "," & Sheet1.Range("AA9:AI20").Address(external:=True) & ",{2,3,5,6,7,8,9},FALSE)"

result = Evaluate(sFormula)
票数 0
EN

Stack Overflow用户

发布于 2015-10-19 11:54:45

试着循环作为

代码语言:javascript
复制
sub Mlookup()
    dim i as integer
    dim res 

    for i = 1 to 5
        res = Application.WorksheetFunction.VLookup(Sheet2.Range("A2"), Sheet1.Range("AA9:AF20"), i, False)
        sheet1.range("A"&i").value = res
    next i

end sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33211267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档