|
▼ドカ さん:
こんにちは
検証、ありがとうございます。
まず、【うまくいっている】という最初のコード Sample ですが、隠れているバグがありました。
データの状況によっては発生しないのですが、あきらかにバグです。
With Sheets("Sheet1") '元シート このブロックに
For j = 1 To y Step 3 がありますが、ケアレスミスでした。
For j = 1 To x Step 3 にしてください。
で、【データがきれいに並ばない】2番目のコード Sample2 ですが、確認作業の過程で
作業列を含めた各列の氏名の並び替えが、必ずしも、同じ並びにならないことを発見しました。
たとえば、山田、田中があったとき、ある列は山田が上、ある列は田中が上になる現象です。
2ヶ所あるソートのパラメータに、以下のように SortMethod パラメータを追加してください。
.Columns(k).Resize(, 3).Sort Key1:=.Columns(k), Order1:=xlAscending, _
SortMethod:=xlStroke, Header:=xlYes
'作業列2を名前順に並び替え
.Columns(wkCol2).Sort Key1:=.Columns(wkCol2), Order1:=xlAscending, _
SortMethod:=xlStroke, Header:=xlYes
じれで、おそらく【きれいに並ぶ】のではと期待しています。
さて、ご質問の件、少し整理してみます。
少しお待ちください。
|
|