実現したいこと
配列に詰めたデータを昇順で表示させたい
データ
現状ソート後も、昇順にならない状態です。
都道府県がA2:B48まで並んでいます。
Dim s As Long, B As Variant, n As Long n = Cells(Rows.count, 4).End(xlUp).Row ReDim B(n - 2, 0) On Error GoTo myError For s = 2 To n B(s - 2, 0) = WorksheetFunction.VLookup(Cells(s, 4), Range("H2:I11"), 2, False) On Error Resume Next Next s Exit Sub myError: MsgBox "エラー番号:" & Err.Number & vbCrLf & _ "エラーの種類:" & Err.Description, vbExclamation Dim tmp As Variant '入れ替え時に一時的にデータを格納 Dim min As Integer 'その時点での最小値が格納されるセルの行番号 Dim k As Integer '最新のソート対象行 Dim m As Integer Dim i As Integer '繰り返しカウンタ '昇順にデータ整列 'ソート対象行を最上位から最終行の手前まで進める For k = 2 To n '最小値格納行を初期化 min = k For i = k + 1 To n + 1 If Cells(min, 8).Value > Cells(i, 8).Value Then min = i End If Next i For m = 8 To 9 tmp = Cells(k, m) Cells(k, m) = Cells(min, m) Cells(min, m) = tmp Next m Next k End Sub ### 現状 現状配列に詰め出力範囲に詰めることができたのですが、昇順に並べ替えることができません。 私のコードですと配列B()というのにデータがあるのですが、そこにあるデータをどのように取り出してコード後半にある選択ソートにはめ込めばいいかわかりません。 ちなみに、最初にFor k = 2 To nから下のコードを完成させ昇順に並べ替えることに成功しました。 しかし、WorksheetFunction.VLookupこちらを使い配列に詰めてから昇順にしたいのです。 よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/18 00:31