2012-12-04 77 views
2

我很感謝你對什麼是一個非常基本的問題的幫助。在一個範圍內使用LastRow

我要求找到最後一排有以下內容的範圍:現在

Dim LastRow As Integer 
LastRow = ActiveSheet.UsedRange.Rows.Count 

,我想選擇與已知柱和一個未知的最後一列的範圍。我想通過插入一個確切的數字來填寫整列而不超出行數。以下是我有 -

Range("AA2").Select 
ActiveCell.FormulaLocal = "=Vlookup(A2,[CP_QR_5_prep.xlsm]Sheet1!A2:LastRow,18,false)" 
Selection.AutoFill Destination:=Range("AA2:AA & LastRow) 

你能不能幫我糾正語法,並提供有關如何使用LASTROW/lastcolumn大綱?

謝謝!

回答

2

你很親密。

你對這些行的語法:

ActiveCell.FormulaLocal = "=Vlookup(A2,[CP_QR_5_prep.xlsm]Sheet1!A2:LastRow,18,false)" 
Selection.AutoFill Destination:=Range("AA2:AA & LastRow) 

應該是:

ActiveCell.FormulaLocal = "=Vlookup(A2,[CP_QR_5_prep.xlsm]Sheet1!$A$2:$A$" & LastRow & ",18,false)" 'i added absolute referencing which I would think you need... if not take out the "$" signs 
Selection.AutoFill Destination:=Range("AA2:AA" & LastRow) 

因爲,爲了讀取該變量的值到你的字符串,你需要關閉的字符串和串聯變量名稱。

我也補充一點,讓細胞的實際最後一行數據這是更好地做這樣的事情:

lastRow = Range("A" & Rows.Count).End(xlUp).Row 

如使用UsedRange可能會留下一個不想要的答案,如果有細胞格式化或其他單元格似乎是空白的,但沒有。

+0

謝謝。使用lastRow = Range(「A」&Rows.Count).End(xlUp).Row確保即使列的左側單元格爲空白,lastrow也會一路向下計數? – Chris2015

+1

是的,有點。這取決於你的數據集。基本上,選擇一個你想要查找*最後一個實際使用的單元格的列,然後在該語法的Range(「A」&Rows.Count)'部分替換該列名稱來代替'A'。 –