下面我们就来看看在Excel VBA程序,它随机排序的数据(在这个例子中随意巧立名目)。

现状:

Randomly Sort Data in Excel VBA

1.首先,我们声明四个变量。 String类型我们称之为TempString的一个变量,Integer类型的一个变量我们称之为TempInteger,Integer类型的一个变量我们称之为i和Integer类型的一个变量我们称之为学家

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2.我们写5张随机数到B列(每个名称)。我们使用工作表函数RANDBETWEEN这一点。

For i = 1 To 5

Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)

Next i

到目前为止结果:

Result so far

我们将使用数字每个名字旁边的名称进行排序。具有最低数量的第一与第二编号最小的名称,第二等

名称3.我们开始一个双循环。

For i = 1 To 5

For j = i + 1 To 5

4.添加以下代码行:

If Cells(j, 2).Value < Cells(i, 2).Value Then

例如:对于i = 1和j = 2,Wendy和理查德进行比较。由于理查德有一个较低的数字,我们交换温迪和理查德。理查德是在第一位置了。对于i = 1和j = 3,Richard和Joost的进行比较。

Joost的具有较高的号码,什么也不会发生。通过这种方式,Excel的VBA得到与在第一位置的编号最小的名字。对于i = 2时,Excel VBA获取名称与在第二位置,等。所述第二最低数目

交换的名称。

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

7.不要忘记关闭If语句。

End If

8.不要忘记关闭两个循环。

Next j

Next i

9.测试程序。

结果:

Randomly Sort Data Result

注意:您可以添加它删除B列的数字它甚至更好的将每个名字的数量在数组中的线,所以没有号码被放置在您的工作表。然而,用于说明目的,我们选择放置在纸张上的值。