2017-08-28 17 views
0

1行のコードを使用して、列A〜Dおよび行1〜4を選択したい(範囲は動的になります)、セルD4は空です。残念ながら、次のどちらも動作するようです:1行のコードで4x4グリッドを選択

Range("A1", Range("A1").End(xlToRight).End(xlDown)).Select 

Range("A1", Range("A1").End(xlDown).End(xlToRight)).Select 

任意のアイデアをお寄せいただきありがとうございます

+0

データの終わりは何ですか?下の例のD4が空白の場合、最後に入力されたセルではありません – ChrisM

+0

なぜコードは1行になければなりませんか? – ChrisM

+0

こんにちはクリス。これはこのマクロのすべてのコードです。基本的には、Ctrl + Shift + Rightを押してCtrl + Shift + Downを押すと、このように動作します。コードは1行にする必要はありませんが、2つに分割すると、必要に応じて機能しません。 – barciewicz

答えて

3

このコードは、A1(CTRL+*

から現在の領域の最後のセルを取ります
Range("A1").CurrentRegion.Select 

そして

Range("A1").SpecialCells(xlCellTypeLastCell).Address 

は、ワークシートの最後のセルのアドレスを与える必要があります。

+0

最後のセルが空でも? – ChrisM

+0

はい、私は私の投稿を編集します私は答えていません実際にはちょうどrng = Range( "A1")を設定してくださいCurrentRegion.Selectはうまくいきます – Bla2

+0

Bla2ありがとうございます。選択がシートの真ん中にあり、空の列がすぐ隣にある場合でも機能しますか?この場合、CurrentRegionでは不十分です。 – barciewicz

0

あなたはA1から始まる4×4ブロックを選択する場合は、使用:

Range("A1").Resize(4, 4).Select 

あなたがA1、使用を見つめて4列のすべての値を含むブロックを選択する場合:

Range("A1:D" & Range("A1:D" & Cells.Rows.Count) _ 
    .Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row).Select 

単にE7ととA1A1:D上記を置き換える、例えば、E7代わりのA1に基本セルを移動しますそれぞれ。

関連する問題