VBA Excel 生成不重复随机数(排除法)

2025-10-01 03:04:22

现在和大家分享一个用VBA代码快速生成一组不重复随机数的方法。

工具/原料

Excel、vba

方法/步骤

   本示例是从Sheet1 A列100个数据中随机抽取20个数据到B列。

一、打开工作薄,按ATL+F11组合键打开VB编辑器,点击菜单栏的“插入“,插入一个模块。

VBA Excel 生成不重复随机数(排除法)

二、双击模块1,输入下面代码到右边的窗口中。

Sub 不重复随机数()

  Dim arr()

   'A列100个数装入数组,单元格列或行数据装入数组,数组下界默认是1

   arr = Application.Transpose(Sheet1.Range("A1:A100"))

   m = 1    '数组下界

   n = 100  '数组上界

   For i = 1 To 20     '循环产生20个不重复随机数

     k = Int(Rnd * n + m)    'm到n之间随机整数,包含m、n

     Sheet1.Cells(i, 2) = arr(k)   '第k个数也就是随机数赋值给工作表第二列

     arr(k) = arr(m)             '数组中第k个数等于第m个数,把第k个数排除了

     m = m + 1                 '缩小随机范围,排除第m个数,2—100,3—100,4—100……

     n = n - 1

    Next i

End Sub

VBA Excel 生成不重复随机数(排除法)

三,把光标定位在代码中,按F5或者点击运行按钮看看效果吧。也可以在工作表添加表单命令按钮指定宏进去或者添加到窗体命令按钮里使用。

VBA Excel 生成不重复随机数(排除法)

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