• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ記録で作成した並べ替えのコードを修正したい)

マクロ記録で作成した並べ替えのコードを修正したい

このQ&Aのポイント
  • Windows7 Excel2007 使用しているマクロ初心者です。マクロ記録で作成した並べ替えのコードを修正したいです。
  • コード内の「.SetRange Range("A3:N26")」部分を自動で設定し、どちらの一覧表でも使えるコードにしたいです。
  • また、コード内の「.Header = xlNo」以下の部分を省略する方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

#3です 補足有難う御座います では これで、うまく行くかな? #3のコードの6行目 >.SetRange Range("a3").CurrentRegion を .SetRange Range("a4", "p" & Cells(Rows.Count, 2).End(xlUp).Row) に変更してください これでどうでしょう?

aitaine
質問者

お礼

仕事から帰って早速貴方様のご回答を実行してみました。 ななんと完璧にできました。本当にありがとうございました。 今後ともよろしくお願いします。

その他の回答 (3)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

確かに説明不足ですね データの範囲を取得するのに データの先頭セルはどこか? 列数は固定なのか否か? 行数は固定なのか否か? データ範囲に空白は含まれるのか? この辺りの説明が無いと 範囲を取得できるのか否かの判断が難しいですよ 判断材料が乏しいので 空白に囲まれたデータを取得する方法を使用したものです 一応、両方のシートでも使用できるようにしたつもりなので 試してみてください 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を持っていないのでうまく行かないかも 参考まで

aitaine
質問者

補足

説明不足でもうしわけありません。恐縮です。  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)
回答No.2

>この操作をせずに、何とかできないでしょうか< どの範囲なのかどこにも明示していなくて セルに書いて読み込ませるのもだめ、 自動設定で2種のrangeを設定する   いったいどうしたいのかをはっきり書きましょう。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> .SetRange Range("A3:N26") "A3:N26"をどこかのセルに入れておき、参照させる。 Sheet1のセルA1に"A3:N26"を入れたなら、 .SetRange Range(Sheets("Sheet1").Range("A1").Value) とね。

aitaine
質問者

補足

> .SetRange Range("A3:N26") "A3:N26"をどこかのセルに入れておき、参照させる。 この操作をせずに、何とかできないでしょうか? ちなみにこの部分 .SetRange Range("A3:N26") .SetRange Range("A3:P28") 両方とも、マクロ記録で自動的にコードに表示されていました。

関連するQ&A