エクセルマクロでA欄に値がある行までのC列の範囲を指定したい。?
エクセルマクロでA欄に値がある行までのC列の範囲を指定したい。?
●エクセルマクロのVBAで次のように記述しています。
Range("C2").FormulaR1C1 = "=VLOOKUP(LEFT(RC[-2],4),C[-2]:C[-1],2,FALSE)"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C148"), Type:=xlFillDefault
A列に文字が入っている最終行は A148なので、C2: C148 の範囲にオートフィルで貼り付けるように
しています。 しかし、A列に文字が入っている最終行は、変動します。
なお、貼り付ける範囲はいつでも C2から始まります。
A列に文字が入っている最終行が A200であれば、C2: C200の範囲、
A列に文字が入っている最終行が A321であれば、C2: C321の範囲といったように、
C2の値を貼り付ける範囲を設定したいと思っています。
●そこで、次のように記入してみました。
With Worksheets(2)
Dim lRow As Long,
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
Range("C1").Formula = "名称"
Range("C2").FormulaR1C1 = "=VLOOKUP(LEFT(RC[-2],4),C[-2]:C[-1],2,FALSE)"
Range("C2").Select
Selection.AutoFill Destination:=Range(Cells(3, 2), Cells(lRow, 3)), Type:=xlFillDefault
変数を使って最終行を指定しても上手くいきませんでした。
(C2:C150)や(C2:C160)といったように「C2」のセルを「C2のセル」から「A列に文字が
入っている行のC列」まで貼り付けたいと思っています。
どのようにVBAを記述したら良いのか教えていただけないでしょうか。
お礼
早速のご回答有難うございました。 ご教授の分色々やってみます、ありがとうございます。