
必要データを別bookから転記した後、所属支店・氏名アイウエ順並び替えを1度の操作で完了させたいのですが、並び替えができません。(完了するのですが、並び替えが出来ていません)
VBA初心者です。ご教示よろしくお願いします。
(途中から記します)
i = 2
Do While Range("B" & i).Value <> ""
On Error Resume Next
With ThisWorkbook.Worksheets("①受講者リスト")
.Cells(i, 4).Value = Application.WorksheetFunction.VLookup(.Cells(i, 2).Value, SerchArea, 3, 0)
<<幾つかの処理があります>>
End With
i = i + 1
Loop
ActiveSheet.Sort.SortFields.Add _
Key:=Range("G2") _
, Order:=xlAscending, CustomOrder:= _
"北海道,東北,北関東,川越,東関東" _
, DataOption1:=xlSortNormal
ActiveSheet.Sort.SortFields.Add _
Key:=Range("D2") _
, Order:=xlAscending
With ActiveWorkbook.Worksheets("①受講者リスト").Sort
.SetRange Range("B1:Y41")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
No.4
- 回答日時:
「Loop」の次の行からを以下に変更してみてください。
--------------------------------------------------------------------------------
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add _
Key:=Range("G2"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
CustomOrder:="北海道,東北,北関東,川越,東関東", _
DataOption:=xlSortNormal
ActiveSheet.Sort.SortFields.Add _
Key:=Range("D2"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Columns("B:Y")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
--------------------------------------------------------------------------------
No.3
- 回答日時:
「配属支店名」はオリジナルの順番に並び替えるのですよね?
それですと2回に分けてソートしないとダメですね。
① 作業Book上には「Loop」の次の行の時点でソート出来ていない表は出来ているのですよね?
② その範囲が「B1:Y41」でしょうか?
③ そこにはタイトル行は有るのでしょうか?
④ ソートの優先順位は「G列:配属支店」の方が「D列:ヨミカナ」より高いですよね?
No.2
- 回答日時:
レイアウトやどこの列を基準にどのようにソートしたいのかを提示していただけないと、処理出来ていないコードを示されただけでは、こちらではどう対処していいか判断できません。
よろしくお願いいたします。No.1
- 回答日時:
レイアウトなどよく判りませんが「ふりがな」の欄は「所属支店・氏名」欄とは別に有るのでしょうか?
もし無ければ「所属支店・氏名」欄にセットされている「ふりがな」もセットしないとダメです。
セルのコピー&ペーストでは「ふりがな」もコピーされますが、セルの「値(Value)」の代入の場合は「ふりがな」は含まれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
あるディレクトリ内のファイル...
-
C# DataGridView のヘッダーセ...
-
DirectoryInfo型配列ソート(C#)
-
2次元配列を複数項目でソートし...
-
DataGridViewの昇順降順。
-
EXCEL VBAのソートについて
-
VBScriptで配列のソートをする...
-
VBScriptで重複レコードを削除...
-
C言語・要素除去
-
n番目に大きい数を求めるアル...
-
VBA基本構文の作り方 2列の...
-
C# DataTableの行をソートしてD...
-
DataGridViewソート時に先頭行...
-
C++ 入力した3つのint型の整数...
-
C言語でアナグラムを求めるプロ...
-
リスト構造のソートで悩んでま...
-
Excelですべての組合せ(重複組...
-
文字列をソートする方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VBA基本構文の作り方 2列の...
-
C言語・要素除去
-
C# DataTableの行をソートしてD...
-
VB.NETでファイル名順にファイ...
-
構造体配列の並べ替え
-
あるディレクトリ内のファイル...
-
配列の問題
-
10個の整数を入力して小さい順...
-
2次元配列を複数項目でソートし...
-
構造体のリストをソートしたい。
-
DataGridViewソート時に先頭行...
-
DataGridViewのソートを止めたい
-
datagridviewの並べ替え
-
C++ 入力した3つのint型の整数...
-
DataGridViewの複数列を連動し...
-
Excelですべての組合せ(重複組...
-
C#のリストボックスで、クリッ...
-
VBScriptで重複レコードを削除...
おすすめ情報
失礼しました。「ふりがな」の並び替えを外していました。
ただ、このままでも、所属支店の並び替えも全くされず、もとの順番のまま表示が変わらないので 並び替えのVBA記述が どこかしらおかしいのだと思うのですが、、、
ありがとうございます。
作業Bookには、予め 「A列:項番 B列:社員番号 C列:氏名」が入力されており、
別Bookから 「D列:ヨミカナ」~Y列までのデータを取得後、「G列:配属支店」基準に並び替えを行い、「D列:ヨミカナ」昇順を行いたいと思います。(最初の質問で、D列並び替え記述を省いてました)
どうぞよろしくお願いします。
ラックさん、ありがとうございます。
①表は完成しています。
②A列は項番ですので、並び替えはB列~Y列で行いたいです。
③タイトルは1行目にあります。
④G列:配属支店が優先します。
この後、作業ができないため、続きは明日でも結構です。 よろしくお願いします。
ラックさん、何度もありがとうございます。
アドバイスの通り、VBAを作り直してみました。「①受講者リスト」を確実にアクティブにするために、次のようにしてみましたが、やはり並び替えができませんでした。
Sheets("①受講者リスト").Activate
ActiveSheet.Sort.Sortfields.Clear
~以下、アドバイスの通り
すみません、ラックさん、できました!!
アクティブにさせるところを
ThisWorkbook.Worksheets(”①受講者リスト").Activate としたら ソートされました。