2016-11-14 46 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