
UsedRangeを使ってソートすることは可能ですか?
エクセルですが
学年 組 出席番号
2 A 1
1 B 2
と言うデータがあり、
これにフィルタをかけつつ、A列で昇順に並び替えるVBAを作ってるのですが
Sub さんぷる()
オートフィルタをかける
Range(Cells(1, 1), Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column)).AutoFilter
UsedRange.Sort Key1:=Cells(1, 1), order1:=xlAscending
End Sub
とすると、
UsedRangeでコンパイルエラーになるのですが
どうすればよろしいでしょうか?

No.4ベストアンサー
- 回答日時:
こんにちは。
なぜ、UsedRangeを使わなくてはならないのでしょうか?
オートフィルタは、一種のデータテーブルが出来ているのですから、そのテーブルの認識には、私は、UsedRangeは使いません。
エラーになるのは、UsedRangeの親オブジェクトがないからです。
>Range(Cells(1, 1), Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column))
列の間がないのなら、このような使い方はしませんが、あえて書くなら、このようになります。
RangeとCellsは、親オブジェクトの関係がないので、2つは繋がっていません。エラーの可能性を含んでいます。
With ActiveSheet '←親オブジェクト
.Range("A1", .Cells(1, Columns.Count).End(xlToLeft)).AutoFilter
.UsedRange.Sort Key1:=Cells(1, 1), Order1:=xlAscending
End With
私なら、このような書き方をします。
Sub Sample1()
With ActiveSheet
If .AutoFilterMode = False Then
.Cells(1, 1).AutoFilter 'データの左端上のセル
End If
.AutoFilter.Range.Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlYes
End With
End Sub
UsedRangeを使えば列や行が増えても
対応できると思ったからです。
UsedRangeがエラーになるのは親オブジェクトがないからと言う理由なのですね。
スマートなコード、ありがとうございます。
No.3
- 回答日時:
sub macro1()
range("A:C").autofilter
activesheet.autofilter.range.sort key1:=range("A1"), order1:=xlascending, header:=xlyes
end sub
みたいな。
#参考
>UsedRangeでコンパイルエラーになるのですが
activesheet.usedrange
のように使うモノです。
UsedRange.Sort
ではなく
ActiveSheet.AutoFilter.Range.Sort
とやればよかったのですね。
できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
=SUBTOTAL に =COUNTIF の機能...
-
Excel関数、何がいけないのかわ...
-
エクセルのフィルタをかけると...
-
行番号の文字の色が青色の理由?
-
色フィルターをかけた状態で、...
-
エクセルの計算表の下向き三角...
-
エクセルで、桁数の異なるデー...
-
excelで奇数の行のみ削除したい
-
Excelでオートフィルタ時に交互...
-
色のついたセルにフラグを立た...
-
教えて下さい!関数SUBTOTALとC...
-
オートフィルタで抽出したデー...
-
エクセルでのオートフィルタオ...
-
オートフィルタをかけた表に一...
-
エクセル:色の付いたデータを...
-
5の倍数の日付だけを抽出したい
-
グーグルスプレッドシート 連番...
-
オートフィルタをしても本当の...
-
関数で可視セルのデータ個数カ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
=SUBTOTAL に =COUNTIF の機能...
-
Excel関数、何がいけないのかわ...
-
色フィルターをかけた状態で、...
-
行番号の文字の色が青色の理由?
-
オートフィルタで抽出したデー...
-
エクセルの計算表の下向き三角...
-
エクセルで、桁数の異なるデー...
-
エクセルのフィルタをかけると...
-
教えて下さい!関数SUBTOTALとC...
-
Excelでオートフィルタ時に交互...
-
Excel2010 フィルタで抽出できない
-
Excel VBAでフィルタしたものに...
-
Excelのセルのデータ:年...
-
オートフィルタをかけた表に一...
-
excelで奇数の行のみ削除したい
-
エクセルについて。 ソートで絞...
-
色のついたセルにフラグを立た...
-
Excel VBAでオートフィルタで抽...
-
エクセルを使用してデジタルフ...
おすすめ情報