在Excel VBA中随机数据进行排序
下面我们就来看看在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
到目前为止结果:
我们将使用数字每个名字旁边的名称进行排序。具有最低数量的第一与第二编号最小的名称,第二等
名称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.测试程序。
结果:
注意:您可以添加它删除B列的数字它甚至更好的将每个名字的数量在数组中的线,所以没有号码被放置在您的工作表。然而,用于说明目的,我们选择放置在纸张上的值。