ランダムエクセルVBAでデータをソート
我々は、ランダムにデータをソートエクセルVBAでプログラムを見て下記(この例では、ランダムに名前を並べ替え)。
状況:
1.まず、我々は4つの変数を宣言します。 String型の一つの変数は、我々は、我々はJを呼び出すI呼び出し、Integer型の一つの変数整数タイプの一つの変数、TempIntegerを呼び出し、整数タイプの一つの変数、TempStringを呼び出します。
Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
2.当社は、列B(それぞれの名前に1つ)に5個の乱数を書きます。私たちは、このためにワークシート関数RANDBETWEENを使用しています。
For i = 1 To 5 Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000) Next i
これまでの結果:
私たちは、名前をソートするためにそれぞれの名前の横の数字を使用します。最初の最小数、第二の最小数と名前、第2など
と名3.私たちは、ダブルループを開始します。
For i = 1 To 5 For j = i + 1 To 5
4.次のコード行を追加します。
If Cells(j, 2).Value < Cells(i, 2).Value Then
例:I = 2 1及びjは=ため、ウェンディとRichardが比較されます。リチャードは低い数字を持っているので、私たちはウェンディとリチャードを入れ替えます。リチャードは今、第1の位置にあります。私は1とjを=の場合= 3、リチャードとJoostが比較されます。
Joostが高い番号を持っているので、何も起こりません。この方法では、ExcelのVBAは、第1の位置で最も小さい番号の名前を取得します。 I = 2のため、エクセルVBA等第二の位置において、第2の最小数と名前を取得し
-
trueの場合、我々 スワップ名。
tempString = Cells(i, 1).Value Cells(i, 1).Value = Cells(j, 1).Value Cells(j, 1).Value = tempString
6.そして、私たちは番号を交換します。
tempInteger = Cells(i, 2).Value Cells(i, 2).Value = Cells(j, 2).Value Cells(j, 2).Value = tempInteger
-
if文を閉じることを忘れないでください。
End If
8.二つのループを閉じることを忘れないでください。
Next j Next i
9.テストプログラム。
結果:
注:あなたは何の数字をワークシート上に置かれていないので、配列内のそれぞれの名前の数字を配置するために、列B.それのも、よりよいで数字を削除行を追加することができます。しかし、説明の目的のために、私たちはシートに値を配置することにしました。