带有绝对和相对引用的Excel vlookup以及变量

时间:2017-05-12 21:01:38

标签: excel vba variables vlookup relative

我试图自动化一个过程,该过程涉及针对类型Y的报告检查多个类型X的报告。

我正在编写一个宏来删除无关数据,并从列A:O中的报告X和来自列AB:AF中的报告Y的数据中粘贴数据。 X和Y都可以有不同的长度。

我想使用vlookup检查报告Y(列AB)以查找Col O中的匹配项,并返回报告Y的第5列(列AE)中的相应值,或者返回列中的值O没有被发现,返回"失踪!"。

如果这是一次性使用,我会在Excel中使用下面的公式并手动自动填充:

=IFERROR(VLOOKUP(O2,AB$2:AE$60,2,FALSE),"MISSING!")

但我希望能够与VBA中的许多其他任务一起做这件事,对于许多可变长度的报告重复这些任务。这是我到目前为止所拥有的代码:

Range("P2:P" & lastRowX).Formula = _
    "=IFERROR(VLOOKUP(O2,AB$2:AE"&lastrowY&",2,FALSE),""MISSING!"")"

其中lastRowX是报表X的最后一行数据的整数变量,lastRowY是报表Y的最后一行.VBA甚至不让我编译它,给我"编译错误:预期:陈述结束"。

此代码有效,但它不允许我使用不同长度的Y:

Range("P2:P" & lastRowX).Formula = _
    "=IFERROR(VLOOKUP(O2,AB$2:AE$60,2,FALSE),""MISSING!"")"

我出错的任何想法或如何做得更好?谢谢!

1 个答案:

答案 0 :(得分:1)

我对此感到困惑,整个下午都在网上寻找答案。发布后我意识到自己的错误:你需要在&符号前后加上空格('&'),如下所示:

范围(“P2:P”& lastRowX).Formula = _         “= IFERROR(VLOOKUP(O2,AB $ 2:AE”& lastRowY&“,2,FALSE),”“MISSING!”“)”

我觉得自己像个傻瓜但会留下我的问题,以防它帮助别人。 D'哦!