2016-11-14 50 views
0

我正在尝试创建一个宏,它可以动态地为工作表执行一个查找工作,并且行数不断增加;我想编写代码,以便它从第二季度运行vlookup到上一个填充行。 Q(不管可能如何),到目前为止我已经想出了这个:将公式分配给可变范围的行VBA

范围(“Q2”,范围(“Q2”)。结束(xlDown))。值=“= VLOOKUP(A2,sheet2 !A:BO,67,FALSE)“

..宏执行所需的所有操作&相应地对每行进行更改,但是在没有更多数据后它也会无限下移到列中。如果可能的话,我想知道是否有办法在一行代码中执行此操作。我有点新VBA &无法找到已经发布的答案,这充分解决了我的问题,所以任何帮助将不胜感激。

+0

您是否在网站上正确搜索?已经在这里回答了几乎相同的问题:[http://stackoverflow.com/questions/40512439/how-to-get-vlookup-to-select-down-to-the-lowest-row-in-vba/40512623# 40512623]。将R1C1格式调整为A1格式以满足您的需求:) – user1

回答

1

这应该根据您提供的信息工作。我猜你正在用公式替换现有的值,否则行查找将返回一个你不想要的值。如果您想要将另一列中的最后一行更改为Cells(Rows.Count, "Q").End(xlUp).Row中的Q为您想要的列。

Range("Q2:Q" & Cells(Rows.Count, "Q").End(xlUp).Row).Value = "=VLOOKUP(A2,sheet2!A:BO,67,FALSE)" 
+0

感谢您的回复!但是您提供的代码仅填充单元格Q1和Q2。不,我正在抓取一个新的列的内容,所以vlookup将填补空白单元格。你知道如何从第二季度开始,并自动填写Q列,直到表格的前几列中有数据的最后一行? – easan

+0

你想收集最后一行的列? – tjb1

+0

列A可能是最好的,因为它是我为vlookup引用的那个 – easan