数百行ほどあるエクセルでソートをするマクロを書いてましたが、
ソートが出来てない上、様々な場所に列ごと移動してしまいます。
たった1行の実行だけなのですが、原因がわからなく教えて頂けると幸いです。
ロットNoで昇順でソートしたい
※元データ(仮)
|ID|ロットNo|製品名|素材名|作業者|
|:--|:--:|--:|||
|2000|10050|xxx|yyy|Aさん|
|2001|10005|zzz|xyz|Hさん|
|2002|10014|zyx|aaa|Uさん|
|2003|10080|bbb|ccc|Kさん|
※期待の結果
|ID|ロットNo|製品名|素材名|作業者|
|:--|:--:|--:|||
|2001|10005|zzz|xyz|Hさん|
|2002|10014|zyx|aaa|Uさん|
|2000|10050|xxx|yyy|Aさん|
|2003|10080|bbb|ccc|Kさん|
※実際の結果
|ロットNo|作業者|素材名|ID|製品名|
|:--|:--:|--:|||
|10050|Aさん|yyy|2000|xxx|
|10080|Kさん|ccc|2003|bbb|
|10005|Hさん|xyz|2001|zzz|
|10014|Uさん|aaa|2002|zyx|
プログラム
VBA
1Sub LOT_Sort() 2Range("A2").Sort key1:=.Columns(2), order1:=xlAscending, Header:=xlYes 3End Sub
環境
Windows 10 Pro 1909
Excel 2019
追記
ソートするプログラムを実行する前に、行ごとにソートするプログラムを1回だけテストで実行してました。
新規作成で試したところ、これを実行したあとに上記のソートがおかしくなる様なのですが、知識が無くこのプログラムの影響を解除する方法がわかりません...。
参考:
https://jun1ch.com/excel-across-sort
https://oshiete.goo.ne.jp/qa/5288606.html
VBA
1Sub test1() 2Dim r As Range 3Dim srng As Range 4 5Set srng = Range("D1:D530") 6For Each r In srng 7'列単位昇順並べ替え 8r.Resize(, 6).Sort Key1:=r, _ 9Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _ 10MatchCase:=False, Orientation:=xlLeftToRight, _ 11SortMethod:=xlPinYin, DataOption1:=xlSortNormal 12Next 13End Sub 14コード
回答1件
あなたの回答
tips
プレビュー