2018年3月15日木曜日

【マクロ】範囲選択

✦A2から15列目(O列)までを選択する。

 しかし、この場合は15列目に空白セルがあるとそこまでの範囲となる。
 例えばA100行まで値が有りO列は50行までしか値がない場合、
 A50:O50の範囲選択となる。

Range("A2", Cells(Rows.Count, 15).End(xlUp)).Select


上記を回避する方法がこれだ。
途中にブランクがある表の最終セルまで選択する。

Range("A2:O" & Cells(Rows.Count, 1).End(xlUp).Row).Select

表の最後まで空白もなく値が入っている箇所をCells(Rows.Count, 1)で
指定する(この場合はA列)。選択したい範囲をRange("A2:O" とすれば
A100:O100までの範囲を選択できる。

------------------------------------------------------------------------------

✦A列の最終セルからオフセットする。
 D列でA列の最終セルから下へひとつ下がったセル。
 A15まで値が入っている場合、D16を選択する。

    r = Cells(Rows.Count, "A").End(xlUp).Row + 1
    Range("D" & r).Select

------------------------------------------------------------------------------

✦セルに数式が入っている場合の選択する。

 通常では数式が入っているセルを全て選択する。
 例えば下記のようにすると、数式が入っているセルを全て選択してしまう。

Range("C2", Cells(Rows.Count, 3).End(xlUp)).Select

 それを回避するのがこれだ。
 数式が入り値が返っている範囲だけを選択する。
 数式が入っていても空白セルは選択しない。

Dim i As Long
On Error Resume Next
For i = Cells(Rows.Count, "C").End(xlUp).Row To 1 Step -1
If Cells(i, "C") <> "" Then Exit For
Next i
Cells(i, "C").Offset(0).Select

これはかなり使えるね。

------------------------------------------------------------------------------

------------------------------------------------------------------------------

------------------------------------------------------------------------------

0 件のコメント:

コメントを投稿