Excel随机选择出10个数据
1、打开Excel表格,点击【开发工具】、【Visual Basic】,调出VBE编辑器。

2、点击【插入】、【模块】。

3、在模块代码框里边输入以下VBA程序。
Sub Rnd_Cells_Select()
Dim i1, i2, i3, i4, Str1
On Error Resume Next
Randomize '初始化随机数种子
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表Sheet1
i4 = 1
For i1 = 1 To 10000 '预计执行10000次(条件满足就退出)
i2 = Int(Rnd() * 2000 + 2) '生成2~2001的随机数
i3 = InStr(1, Str1, i2) '判断随机字符所在的位置
If Str1 = "" Or i3 = 0 Then '如果随机字符是空白或不存在重复,则
Str1 = Str1 & "," & i2 '拼接字符
i4 = i4 + 1 '行数累计+1
mysheet1.Cells(i4, 4) = mysheet1.Cells(i2, 1) '写入D列单元格
If i4 >= 11 Then
Exit For '退出For循环
End If
End If
Next
End Sub

4、检查无误后,在VBE编辑器的功能区里边点击“运行”图标运行程序。

5、回到Sheet1工作表界面,将会看到程序的执行结果。

1、Excel表格上面可以使用普通的函数公式处理,但不能保证筛选出来的随机数不重复。
例如:F2单元格输入公式=INDEX($A$2:$A$2001,INT(INT(RAND()*2000+1))),再向下复制填充。

2、VBA程序思路解读:
1、通过生成随机数,判断它不存在重复的数据时,再匹配相应的单元格。
2、随机数函数Rnd的取值范围是大于等于0且小于1,取整函数Int是向下取整,Int(Rnd() * 2000 + 2)的数值范围也就在2~2001,即A2:A2001单元格区域。
3、Instr是获取指定字符所在的字符串里面的位置,如果不存在,则为0。
