システムメンテナンスのお知らせ

こんにちは。マクロ初心者です。
早速ですがやりたい事を書きます!

A B C
1 名前 住所 TEL
2 あ  い
3 う  え
4 お  か

100 き  く
上記のような状態で、C2セルにある関数(実際にはvlookupです)
を入力し、オートフィルをC2からC100にかけたいです。
ただ、行数は毎回変化するので、AutoFill Destination は
固定ではなく、CurrentRegion の最終行までとしたいです。
どう記述すればよろしいでしょうか?

教えていただけましたら非常にうれしいです。
何卒よろしくお願いいたします。

gooドクター

A 回答 (3件)

Range("c2").AutoFill Destination:=Range("C2:C" & Cells(3).CurrentRegion.Rows.Count)



でいかがでしょう。
途中で空白がある場合
Range("c2").AutoFill Destination:=Range("C2:C" & Range("C65536").End(xlUp).Row)

がいいでしょう
    • good
    • 13
この回答へのお礼

ありがとうございました。
大変簡潔に、私のやりたい事をご回答いただきました。
Range("C2:C" & ~)の書き方を初めて知りました。
とても参考になりました。

お礼日時:2009/08/14 00:23

初心者なら、判らないというのでなく、マクロの記録の力を借りること。

そのためにはエクセルの操作を知っていないと扱えないが。
ーー
最終行を捉えル操作は
(1)編集ージャンプーセル選択ー最後のセル
Sub test01()
r=Range("a1:C100").SpecialCells(xlCellTypeLastCell).Row
MsgBox r
End Sub
(2)その列の十分下のセルを選択してENDキーのあとに上矢印キー
Sub test02()
r= Range("B65536").End(xlUp).Row
MsgBox r
End Sub
ーーー
おーとふぃるコピー貼り付けの操作
マクロの記録
Selection.Copy
Range("D2:D21").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
このRange("D2:D21")の21のところをRange("D2:D" & r).・・
に変える。rは上記で求めた最下行数です。
    • good
    • 1
この回答へのお礼

ありがとうございました。
Range("C2:C" & ~)の書き方を初めて知りました。
とても参考になりました。

お礼日時:2009/08/14 00:23

A2からA列の最終行までと同じ範囲というのなら、



Range("C2").AutoFill Destination:=Range("C2:C" & Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault

と言う感じは如何でしょうか。
    • good
    • 3
この回答へのお礼

ありがとうございました。
Range("C2:C" & ~)の書き方を初めて知りました。
とても参考になりました。

お礼日時:2009/08/14 00:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング