【VBAスタンダードに挑戦!】
本日の5分勉強の内容
********************************************************
End
・データ、または空欄が途切れるところまでカーソルを移動させる
・Ctrl + 矢印キー と同じ動き
・最終行、最終列を判別することができる
・Range("A1"). End(xlDown).Row
セルA1からデータ/空欄が途切れるセルまで下がる
途中で空欄がある場合や、セルが結合されている場合には
最終行を取得できない
・Cells(Rows. Count, 1). End(xlUp).Row
列Aの最終行(1,048,576行目)からデータ/空欄の途切れるセルまで上がる
・Range("A1"). End(xlToRight). Column
セルA1からデータ/空欄の途切れるセルまで右に移動する
途中で空欄がある場合や、セルが結合されている場合には
最終列を取得できない
・Cells(1, Columns. Count). End(xlToLeft). Column
1行目の最終列(XFD/16384列目)から
データ/空欄の途切れるセルまで左に移動する
Dim LastR As Long
LastR = Cells(Rows.Count, 1).End(xlUp).Row '列Aの最終行を取得する
'値段の列から1000円以上、4000円未満で絞り込む
Range("A1").AutoFilter 3, ">1,000", xlAnd, "<4,000"
'対象の商品に割引価格を入力する
Range(Cells(2, 4), Cells(LastR, 4)) = "800"
'絞込みの解除
Range("A1").AutoFilter 3
最終行の取得には End(xlUp) を良く使います。
でも、Cells(Rows. Count, 1).Row と End(xlUp) を忘れてしまい、
100万行分のループで終わらない ということも良くあります・・・
途中にデータがあったり、なかったり、セルが結合されていたり、
どの行、列で計測するか最初に判断が必要です。
AutoFilter の設置/解除は、Range("A1"). AutoFilter
絞込みの解除は、Range("A1"). AutoFilter 1
で、できます。
当たり前かもしれませんが、絞込みの解除は絞り込みをした列に対して
実行するので、3列目で絞り込んだのに、Range("A1"). AutoFilter 1
を指定しても解除されません。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/