2016-08-11 9 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)" 

私はlastRowがに変更し、あなたが探している最後の行を表すものではありませんsupposte:

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 
関連する問題