- 締切済み
エクセル excel 複数範囲選択マクロ
a列2行目からa列の値がある最下行 と c列2行目からc列の値がある最下行 という範囲を同時に選択するマクロの構文を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tsubuyuki
- ベストアンサー率45% (699/1545)
ちなみに、最終行がわかっている場合の書き方は A列最終行=20行目、C列最終行が10行目だとすると Range("A2:A20,C2:C10").Select その複数の範囲を「,」で区切って、こんな感じで書きます。 最終行を求めるには、例えばA列なら ・A2以降、必ず2つ以上のデータがあり、途中に空白行が無い場合 Range("A2").End(xlDown).Row または Cells(2, 1).End(xlDown).Row ・A2以降にデータが無い可能性がある データが連続していない(空白の行も想定される)場合 Range("A" & Rows.Count).End(xlUp).Row または Cells(Rows.Count, 1).End(xlUp).Row として求めてやるのが(おそらく)一般的です。 後者を覚えておけば(ほぼ)間違いないと思います。 組み合わせると、xlUpを使うなら Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row & ",C2:C" & Range("C" & Rows.Count).End(xlUp).Row).Select こんな感じです。 補記) 範囲を指定した後で、特定のセルにフォーカスを置きたいなら Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row & ",C2:C" & Range("C" & Rows.Count).End(xlUp).Row).Select Range("C2").Activate とつけてやると、C2にフォーカスがいきます。 ただし、指定した範囲内にしないと、範囲指定が解除されてしまうので注意です。 ちなみにこれらは「マクロの記録」機能で確認できますのでお試し下さいませ。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにすればよいでしょう。 n = Range("A65536").End(xlUp).Row m = Range("C65536").End(xlUp).Row Application.Union(Range(Range("A2"), Range("A" & n)), Range(Range("C2"), Range("C" & m))).Select
- mt2008
- ベストアンサー率52% (885/1701)
とりあえずこんな感じでどうかな? Sub Sample() nALast = Cells(Rows.Count, 1).End(xlUp).Row nCLast = Cells(Rows.Count, 3).End(xlUp).Row sRange = "A2:A" & nALast & ",C2:C" & nCLast Range(sRange).Select End Sub