我々は、ランダムにデータをソートエクセルVBAでプログラムを見て下記(この例では、ランダムに名前を並べ替え)。

状況:

Randomly Sort Data in Excel 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

これまでの結果:

Result so far

私たちは、名前をソートするためにそれぞれの名前の横の数字を使用します。最初の最小数、第二の最小数と名前、第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の最小数と名前を取得し

  1. 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
  1. if文を閉じることを忘れないでください。

End If

8.二つのループを閉じることを忘れないでください。

Next j

Next i

9.テストプログラム。

結果:

Randomly Sort Data Result

注:あなたは何の数字をワークシート上に置かれていないので、配列内のそれぞれの名前の数字を配置するために、列B.それのも、よりよいで数字を削除行を追加することができます。しかし、説明の目的のために、私たちはシートに値を配置することにしました。