- ベストアンサー
エクセルで表のある列を最初から最後まで選択するマクロ
今現在、シートにA3:E700までの大きな表があります。 中のデータは文字列や数値です。 A列B列には途中に空白はありません。C~E列には空白もあります。 この表のB列だけを選択するマクロを書きたいのですが、データは日々増減するため最終行が特定できません。 どのように書けばいいのでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ありゃ、間違えました。 > シートにA3:E700までの大きな表があります > A列B列には途中に空白はありません。 この条件を組み入れて、簡潔に記述すると次のようになると思います。 Range("B3", Range("B3").End(xlDown)).Select ただし、表に1行以上のデータがあるものとします。
その他の回答 (5)
- ja7awu
- ベストアンサー率62% (292/464)
> シートにA3:E700までの大きな表があります > A列B列には途中に空白はありません。 この条件を組み入れて、簡潔に記述すると次のようになると思います。 Range("B3", Range("B2").End(xlDown)).Select ただし、表に1行以上のデータ(見出しでも)があるものとします。
- mizo007
- ベストアンサー率50% (2/4)
Worksheets("Sheet1").Activate ActiveSheet.Range("B3", ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)).Select これでどうでしょうか?
お礼
ありがとうございました。 ざんねんながら別の部分まで選択されてしまいました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 Range("B1:B" & Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row).Select です。 ActiveSheet.Rows.Countはエクセルの最大行数で、Excel2000なら、65536です。 したがって、 Range("B1:B" & Range("B65536").End(xlUp).Row).Select でもOKです。 なお、データ最終行より下のB列に何か入力があると、そこまで選択してしまいます。
お礼
さっそくありがとうございました。 出来ました!
#1です。 単に無条件にB列だけの選択というのであれば、 Sub Test() Columns("B").Select End Sub でも OK ですね。
Sub Test() Dim myRow As Long myRow = Range("B1:B1").CurrentRegion.Rows.Count Range("B1:B" & pRow).Select End Sub
お礼
さっそくありがとうございました。 出来ました!
お礼
ありがとうございました。 これでやったら、表より下に別のデータがあっても大丈夫でした。 助かりました。