2016-08-11 85 views
0

所以我想填充一列VLOOKUP。我想填充從當前單元格到數據最後一行的範圍。我在這裏查看了這些問題,並且看過其他例子,它應該可以工作,但它所做的只是停在第一個空白單元格。我試圖在D3中進行vlookup並自動填充到數據的最後一行。這是我的代碼到目前爲止。試圖自動填充到最後一行數據

Dim lastRow As Long 
lastRow = Range("D" & Rows.Count).End(xlUp).Row 
Range("D3").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[2],Messages.csv!C1:C18,15,FALSE)" 
Range("D3").Select 
Selection.AutoFill Destination:=Range("D3:D" & lastRow) 

我的設置有什麼問題?

謝謝!

+1

你確定你不需要'FillDown'方法嗎? – Brian

+0

「到數據的最後一行」數據在哪一列?在'D'裏他們不可以,因爲應該有公式。但是你的'Range(「D」&Rows.Count).End(xlUp).Row'查找'D'列中最後一個填充的單元格。根據你的公式可能'lastRow = Range(「F」&Rows.Count).End(xlUp).Row'? –

回答

0

你應該避免像.Select.ActiveCell方法。試試這個:

Dim lastRow As Long 
lastRow = Range("D" & Rows.Count).End(xlUp).Row 
Range("D3:D" & lastRow) = "=VLOOKUP(RC[2],Messages.csv!C1:C18,15,FALSE)" 

我supposte lastRow並不代表你正在尋找的最後一排,將其更改爲:

lastRow = Range("<column with the last row you are looking for>" & Rows.Count).End(xlUp).Row 

(顯然不是文本,我覺得它可能C列或F

+0

這很好。謝謝。 – Grimmjow91

1

試試這個(假設ActiveCell是D3):

Range(Range("D3"),Range("D" & lastrow)).FillDown