- ベストアンサー
マクロ記録で作成した並べ替えのコードを修正したい
- Windows7 Excel2007 使用しているマクロ初心者です。マクロ記録で作成した並べ替えのコードを修正したいです。
- コード内の「.SetRange Range("A3:N26")」部分を自動で設定し、どちらの一覧表でも使えるコードにしたいです。
- また、コード内の「.Header = xlNo」以下の部分を省略する方法があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3です 補足有難う御座います では これで、うまく行くかな? #3のコードの6行目 >.SetRange Range("a3").CurrentRegion を .SetRange Range("a4", "p" & Cells(Rows.Count, 2).End(xlUp).Row) に変更してください これでどうでしょう?
その他の回答 (3)
- hige_082
- ベストアンサー率50% (379/747)
確かに説明不足ですね データの範囲を取得するのに データの先頭セルはどこか? 列数は固定なのか否か? 行数は固定なのか否か? データ範囲に空白は含まれるのか? この辺りの説明が無いと 範囲を取得できるのか否かの判断が難しいですよ 判断材料が乏しいので 空白に囲まれたデータを取得する方法を使用したものです 一応、両方のシートでも使用できるようにしたつもりなので 試してみてください Sub 一覧表のソート() ActiveSheet.Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Add Key:=Range("B2"), SortOn _ :=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveSheet.Sort .SetRange Range("a3").CurrentRegion .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub excel2007を持っていないのでうまく行かないかも 参考まで
補足
説明不足でもうしわけありません。恐縮です。 1行目のA1から右列に表の題と日付がはいっています。 2行目のA2からP26までが表になってます。 列は固定ですが、行数は変動します。 2行目のA2からP2までが表の見出しになってます。 内容は シート番号 客先番号 氏名・・等です。 3行目のE3からP3までには関数が入っています。 4行目以下の数値の合計関数です。 A3からD3までは空欄です。 4行目のA4からP26までが実際にソートしたいデータです。 空欄もあります。 B列には B2に客先番号という文字列 B3は空欄 B4 B5以下は ソートしたい番号がランダムにはいっているので、これを昇順で並べ替えたいです。よろしくお願いします。
- DreamyCat
- ベストアンサー率56% (295/524)
>この操作をせずに、何とかできないでしょうか< どの範囲なのかどこにも明示していなくて セルに書いて読み込ませるのもだめ、 自動設定で2種のrangeを設定する いったいどうしたいのかをはっきり書きましょう。
- bin-chan
- ベストアンサー率33% (1403/4213)
> .SetRange Range("A3:N26") "A3:N26"をどこかのセルに入れておき、参照させる。 Sheet1のセルA1に"A3:N26"を入れたなら、 .SetRange Range(Sheets("Sheet1").Range("A1").Value) とね。
補足
> .SetRange Range("A3:N26") "A3:N26"をどこかのセルに入れておき、参照させる。 この操作をせずに、何とかできないでしょうか? ちなみにこの部分 .SetRange Range("A3:N26") .SetRange Range("A3:P28") 両方とも、マクロ記録で自動的にコードに表示されていました。
お礼
仕事から帰って早速貴方様のご回答を実行してみました。 ななんと完璧にできました。本当にありがとうございました。 今後ともよろしくお願いします。