下面我们将查看Excel VBA中的一个程序,该程序对数据进行随机排序(在本示例中为名称随机排序)。
情况:
1.首先,我们声明四个变量。我们将一个String类型的变量称为TempString,一个Integer类型的变量称为TempInteger,一个Integer类型的变量称为i,将一个Integer类型的变量称为j。
Dim tempString 作为 String,tempInteger 作为 Integer,i 作为 Integer,j 作为 Integer
2.我们在B列中写入5个随机数(每个名称一个)。为此,我们使用工作表函数RandBetween。
对于 i = 1 至 5个像元
(i,2)。值= WorksheetFunction.RandBetween(0,1000)
接下来的 i
(i,2)。值= WorksheetFunction.RandBetween(0,1000)
接下来的 i
到目前为止的结果:
我们将使用每个名称旁边的数字对名称进行排序。编号最小的名字在前,编号第二小的名字,在第二,依此类推。
3.我们开始一个双循环。
对于 i = 1 至 5
对于 j = i + 1 至 5
对于 j = i + 1 至 5
4.添加以下代码行:
如果 Cells(j,2).Value <Cells(i,2).Value 然后
示例:对于i = 1和j = 2,将对Wendy和Richard进行比较。由于理查德的人数较少,我们交换了温迪和理查德。理查德现在处于第一位置。对于i = 1和j = 3,将比较Richard和Joost。Joost的数字更高,因此什么也没发生。这样,Excel VBA会在第一个位置获得编号最小的名称。对于i = 2,Excel VBA会在第二个位置获得第二个最低的名称,依此类推。
5.如果为true,我们交换名称。
tempString = Cells(i,1).Value
Cells(i,1).Value = Cells(j,1).Value
Cells(j,1).Value = tempString
Cells(i,1).Value = Cells(j,1).Value
Cells(j,1).Value = tempString
6.然后交换数字。
tempInteger =单元格(i,2)。值
单元格(i,2)。值=单元格(j,2)。值
单元格(j,2)。值= tempInteger
单元格(i,2)。值=单元格(j,2)。值
单元格(j,2)。值= tempInteger
7.不要忘记关闭If语句。
如果结束
8.不要忘记关闭两个循环。
下一步 Ĵ
接下来我
接下来我
9.测试程序。
结果:
注意:您可以添加一行以删除B列中的数字。将每个名称的数字放置在数组中甚至更好,因此在工作表上没有数字。但是,出于说明目的,我们选择将值放置在图纸上。