小兔网

下面我们将查看Excel VBA中的一个程序,该程序对数据进行随机排序(在本示例中为名称随机排序)。

情况:

在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

到目前为止的结果:

到目前为止的结果

我们将使用每个名称旁边的数字对名称进行排序。编号最小的名字在前,编号第二小的名字,在第二,依此类推。

3.我们开始一个双循环

对于 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

6.然后交换数字。

tempInteger =单元格(i,2)。值
单元格(i,2)。值=单元格(j,2)。值
单元格(j,2)。值= tempInteger

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

如果结束

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

    下一步 Ĵ
接下来

9.测试程序。

结果:

随机排序数据结果

注意:您可以添加一行以删除B列中的数字。将每个名称的数字放置在数组中甚至更好,因此在工作表上没有数字。但是,出于说明目的,我们选择将值放置在图纸上。