广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Excel VBA代做如何生成不重复随机数

    来源:网络收集  点击:  时间:2024-07-22
    【导读】:
    今天跟大家分享一下Excel如何利用vba如何生成不重复随机数工具/原料moreExcel方法/步骤1/7分步阅读

    如下图A列是某班级19位同学的姓名,现在我们想要用vba为这19名同学随机安排座位号。

    2/7

    选中B2:B20单元格区域,然后同时按下Alt+F11

    3/7

    点击sheet1,然后在右边空白区录入vba代码,接着按下F5运行代码

    4/7

    录入1作为最小随机数,然后点击【确定】

    5/7

    接着在最大随机数字选项内录入19,点击【确定】

    6/7

    接着点击【确定】即可完成

    7/7

    完成效果如下图,最后跟大家分享一下本文这里所使用的vba代码。如果需要Excel vba 代做 请百度方方格子

    Sub 生成不重复的随机数()

    On Error Resume Next Dim count As Long, needCount As Long Dim rn As Range Dim max, min, unit As Double Dim bRepeat As Boolean Dim d As Object Dim i, v

    count = Selection.Cells.count If count 10000 Then MsgBox 请不要选择超过10000个单元格! Exit Sub End If

    min = Application.InputBox(prompt:=随机最小数字, Type:=1, Default:=0) If Not IsNumeric(min) Then Exit Sub false 不够准确,0也是false max = Application.InputBox(prompt:=随机最大数字, Type:=1, Default:=100) If Not IsNumeric(max) Then Exit Sub unit = Application.InputBox(prompt:=随机数的精确单位,如精确到1、精确到0.2 等等, Type:=1, Default:=1) If Not IsNumeric(unit) Then Exit Sub If unit = False Then Exit Sub --------------------------------------- needCount = Int((max - min + unit) / unit) If count needCount Then count = needCount 合理个数 MsgBox 您选择的区域太大,无法生成不重复的随机数! 至多只能选中 needCount 个单元格! Exit Sub End If Set d = CreateObject(scripting.dictionary) Randomize Timer For i = 1 To count Do v = Int(Rnd() * Int((max - min + unit) / unit)) * unit + min Loop While d.exists(v)

    Selection.Cells(i) = v d.Add v, Next iEnd Sub

    注意事项

    如有疑问可以点击下方【我有疑问】,与我沟通交流!!

    EXCELVBA代码随机不重复
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_985208.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 14:30:04  耗时:0.025
    0.0255s