2017-02-20 18 views
0

ここでは2つの注意点があります。最初は:Forループを使用して各行をステップ実行しています。 2番目:各行のデータが最後の列であることがわかりません。したがって、Range.End関数を使用して検索しようとしています。行Xのデータと最後の列を選択するには、動作するコードは次のとおりです。Excel VBA - 範囲内の範囲関数の使用

Cells(x, Range("C" & x).End(xlToRight).Column).Select 

あなたは上から見ることができるように、私は列C、行Xから始まるとのデータと最後のセルを探していますその行列A、B、C、D、Eには必ずデータがあるので、どの列から始めるかは重要ではないと思います。

ここでは、セルx(x、3)(または列Cの行X)から行xのデータを持つ最後のセルまでの範囲を選択しようとしています。次のコードは動作しません:私はそのようにレンジ機能を使用させて頂く場合

Range("Cells(x,3):Cells(x, Range("C" & x).End(xlToRight).Column)").Select 

は、私にはわかりません。エラーは、 "expected:List separator or"というコンパイルエラーです。Cを強調表示しています。Range("C" & x)私は注意深く見ましたが、何も見当たりません。

非常に助けていただきありがとうございます。

答えて

0

はこのようにそれを使用します。End(xlToRight)を使用して

Range(Cells(x,3), Cells(x, Range("C" & x).End(xlToRight).Column)).Select 
+1

ああ私の帽子を。私は歩いて自分を殺すようにしましょう!おい、30分と私はなぜああ理由が好きです!困ったことは言葉ではありません!とにかく、あなたの助けに感謝します。私は10分で答えを受け入れます!ありがとう! – KoderM16

1

あなたの方法は、あなたの範囲は連続である場合にのみ動作します。

範囲の真ん中に空白のセルがある場合(列MとNが空であるとします)、列 "O:X"にデータのあるセルは表示されません。 Select行xのデータとの最後の列に

は、使用:

Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)).Select 

しかし、Selectする必要があなたの場合は、ほとんどありません。

Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column).Select 

全体Range使用Selectへ「しなければならない」という場合、最初にRangeを定義する方がよいでしょう:

Dim Rng As Range 

Set Rng = Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)) 

以降に、あなたがSelectする必要がある場合には、使用:

Rng.Select 
+0

こんにちは、最後まで列単位でデータを貼り付けるので、連続しています。私はコピーして単語に移動するためにそれを選択しようとしています。すべてがうまくいきます。ご協力いただきありがとうございます! – KoderM16

+0

@ KoderM16でも、あなたは 'End(xlToRight)'と 'End(xlDown)'を使う危険性を知っておくべきです –

+0

私は同意してくれています。 – KoderM16