Excel随机选择出10个数据

2025-10-04 00:46:12

1、打开Excel表格,点击【开发工具】、【Visual Basic】,调出VBE编辑器。

Excel随机选择出10个数据

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

Excel随机选择出10个数据

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

Excel随机选择出10个数据

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

Excel随机选择出10个数据

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

Excel随机选择出10个数据

1、Excel表格上面可以使用普通的函数公式处理,但不能保证筛选出来的随机数不重复。

例如:F2单元格输入公式=INDEX($A$2:$A$2001,INT(INT(RAND()*2000+1))),再向下复制填充。

Excel随机选择出10个数据

2、VBA程序思路解读:

1、通过生成随机数,判断它不存在重复的数据时,再匹配相应的单元格。

2、随机数函数Rnd的取值范围是大于等于0且小于1,取整函数Int是向下取整,Int(Rnd() * 2000 + 2)的数值范围也就在2~2001,即A2:A2001单元格区域。

3、Instr是获取指定字符所在的字符串里面的位置,如果不存在,则为0。

Excel随机选择出10个数据

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢