[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『列ソート』(はる)
お世話になります。
A7から始まる表で列のソートを行いたくコードの記録を元に変えてみたのですが
記述した段階で赤く反転してコンパイルエラーとなってしまいます。
どの様にしたら良いか教えてください。
Sub 列ソート()
赤く反転 Range("A7").End(xlDwon).row:Range("A7").End(xlToRight).Column).Select
ActiveWorkbook.Worksheets("test").Sort.SortFields.Clear 赤く反転 ActiveWorkbook.Worksheets("test").Sort.SortFields.Add key:=Range("A7").End(xlDwon).row:("A7").End(xlToRight).Column), _ 赤く反転 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("test").Sort .SetRange Range("A7").End(xlToRight).Column .Header = xlGuess .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With End Sub
< 使用 Excel:Excel2007、使用 OS:Windows7 >
いったん、構文エラーのみのポイントでアップしましたが、どうせなら、並び替え領域そのものも含めて 手を入れたほうがいいと思ったので、削除します。
並び替え領域はどこからどこまで、ですか?
(β) 2015/07/19(日) 21:39
たぶん、こういうことだろうと思います。 最初の赤く光った部分、並び替え引数として使うために 変数 r にいれていますが、その右辺と、そちらのコードを 比較してみてください。
それと、マクロ記録すると、おうおうにして Header:=xlGuess と生成されますが、ここは xlYes か xlNo かを明示したほうがいいですよ。
Sub 列ソート2() Dim r As Range
With Sheets("test") Set r = .Range("A7", .Cells(.Range("A7").End(xlDown).Row, .Range("A7").End(xlToRight).Column)) .Sort.SortFields.Clear .Sort.SortFields.Add Key:=r.Rows(1), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With .Sort .SetRange r .Header = xlNo '★ .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With End With
End Sub
(β) 2015/07/19(日) 22:09
Set r = .Range("A7", .Cells(.Range("A7").End(xlDown).Row, .Range("A7").End(xlToRight).Column))
これは
Set r = .Range("A7").CurrentRegion
でOKです。
(β) 2015/07/19(日) 22:14
今回は本当にありがとうございました。
(はる) 2015/07/19(日) 22:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.