|
▼りん さん:
先日はソートに関するご回答をありがとうございました。
上手くいって喜んでいましたが、一つ問題が起こりました。
範囲を指定してからソートをしていますが、VBAに限らず、
1行しかないデータはソートをかけると下段が空白であった場合次の文字が
出てくるところまでを再下段としてみてしまうようです。
これによって、同じかたまりではないデータまでもソートをしてしまい
おかしなことになってしまいました。
1行しかない場合はソートをしないという方法はないでしょうか。
範囲は何行になるか決まっていません。
複数シートがあり、1行のところもあれば、4行のところもあれば
まったくない場合もあります。
2行以上の時だけ、範囲を指定してソートにできたらよいのですが。
Range(Cells(k, "A"), Cells(k, "E").End(xlDown)).Sort _
Key1:=Range("A" & k), Order1:=xlAscending, _
Key2:=Range("E" & k), Order2:=xlAscending, Header:=xlNo
何を直すか、又は加えるものがあればよいか教えてください。
よろしくお願いいたします。
>kei さん、こんばんわ。
>
>>Rangeを外したら、うまくソートができました。
>Range コレクションのヘルプを見ていただけばわかりますが、
>
>1 つのセルまたはセル範囲を表す Range オブジェクトを取得するには、Range(arg) プロパティを使用します。引数 arg には、範囲の名前を指定します。
>
>ということなので、
>
> Range(Cells(k, "A"), Cells(k, "E").End(xlDown)).Sort _
> Key1:=Range("A" & k), Order1:=xlAscending, _
> Key2:=Range("E" & k), Order2:=xlAscending, Header:=xlNo
>
>こうなります。
|
|