首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用VBA代码从列表中获取唯一的30个随机数

要使用VBA代码从一个列表中获取唯一的30个随机数,你可以按照以下步骤进行:

基础概念

VBA(Visual Basic for Applications)是Microsoft Office软件中的编程语言,用于自动化和扩展Office应用程序的功能。通过VBA,你可以编写宏来执行复杂的任务,如数据处理、用户界面设计等。

相关优势

  • 自动化:可以自动执行重复性任务,提高工作效率。
  • 灵活性:可以根据需求编写自定义代码,实现特定功能。
  • 集成性:可以与Office应用程序无缝集成,利用其丰富的功能。

类型

VBA代码可以分为宏(Macro)和模块(Module)两种类型。宏通常用于执行简单的任务,而模块则用于编写更复杂的代码。

应用场景

VBA广泛应用于数据处理、报表生成、用户界面设计、自动化测试等领域。

示例代码

以下是一个示例代码,展示如何从一个列表中获取唯一的30个随机数:

代码语言:txt
复制
Sub GetUniqueRandomNumbers()
    Dim OriginalList As Range
    Dim RandomNumbers As Object
    Dim i As Integer
    Dim j As Integer
    Dim NumCount As Integer
    
    ' 设置原始列表范围
    Set OriginalList = Range("A1:A100") ' 假设原始列表在A1到A100单元格
    
    ' 创建一个集合对象来存储唯一的随机数
    Set RandomNumbers = CreateObject("Scripting.Dictionary")
    
    ' 获取30个唯一的随机数
    NumCount = 0
    Do While NumCount < 30
        i = Application.WorksheetFunction.RandBetween(1, OriginalList.Rows.Count)
        j = OriginalList.Cells(i, 1).Value
        If Not RandomNumbers.Exists(j) Then
            RandomNumbers.Add j, j
            NumCount = NumCount + 1
        End If
    Loop
    
    ' 将结果输出到B列
    Range("B1").Resize(RandomNumbers.Count, 1).Value = Application.Transpose(RandomNumbers.Keys)
End Sub

解释

  1. 设置原始列表范围:假设原始列表在A1到A100单元格。
  2. 创建集合对象:使用Scripting.Dictionary对象来存储唯一的随机数。
  3. 生成随机数:使用Application.WorksheetFunction.RandBetween函数生成随机数,并检查是否已经存在于集合中。
  4. 输出结果:将生成的唯一随机数输出到B列。

参考链接

通过上述步骤和代码示例,你可以轻松地从一个列表中获取唯一的30个随机数。如果你在实际应用中遇到任何问题,可以参考上述链接或进一步调试代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 问与答115:如何使用VBAExcel复制图片并将其粘贴到PowerPoint指定幻灯片?

    Q:我在Excel工作表包含有1张图片,名称是默认“图片 1”,我怎样编写VBA代码来打开一个已存在PPT文件,先删除该PPT中所有的图片,然后将“图片 1”复制并粘贴到该PPT第2张幻灯片中...A:首先,添加对“MicrosoftPowerPoint XX.0 Object Library”库引用,如下图1所示。 ?...图1 然后,输入如下代码: Sub PPT_Autom() Dim ObjPPT As PowerPoint.Application Dim oPresentation AsPowerPoint.Presentation...ObjPPT.Visible = msoCTrue Set oPresentation =ObjPPT.Presentations.Open(opath, msoCTrue) '删除PPT所有图片...注:今天这个问题来源于mrexcel.com论坛,略有修改,供有兴趣朋友学习参考。

    4.3K41

    示例讲字典(Dictionary):获取唯一

    标签:VBA,Dictionary 字典(Dictionary)是一种通过键(key)和项(item)(注:键和项是字典术语)存储唯一方法。...它是一种基于唯一键存储数据极好工具,它强大之处在于可以使用键来存储和合并数据。 在本文中,讲解如何在字典捕获一个单元格区域并将其引用回Excel。...这里,将存储一个10行单元格区域,然后只输出该区域中唯一项目。 示例如下图1所示。获取其数据区域,使用字典将数据存储,然后使用VBA数组提取我们选择需要获取唯一列。...图2 下面的VBA代码数据单元格区域中生成唯一数据。它将从数组的当前区域获取数据,并将数据汇总到一个唯一列表,输出到所选择单元格区域内。...图3 如果想要输出不同列唯一值,可以使用代码

    4.9K50

    Python让Excel飞起来:使用Python xlwings实现Excel自动化

    2.使用Python编写宏,并通过单击按钮Excel运行。 3.使用Python编写用户定义函数,并像调用任何Excel内置函数一样Excel调用这些函数。 听起来很刺激?让我们开始吧!...基本上,我们是在向单元格写入字符串。这里,我们要在另一列中计算x轴指数值。在下面的代码,我们使用了“f-string”,这是Python 3.6开始一种改进字符串格式语法。...然而,它需要一点VBA来允许Excel调用Python函数。 Python脚本 让我们首先编写一个简单Python函数,该函数生成10个随机数,然后将它们放在Excel工作表单元格A1。...在右侧代码窗口,输入以下VBA代码。...图12 注意到,当键入函数时,square实际上会显示在函数列表——我们可以像使用Excel内置函数一样使用Python函数,并且可以将单元格引用传递到函数

    9.5K41

    VBA高级筛选技巧:获取唯一

    标签:VBA,AdvancedFilter方法 在处理大型数据集时,很可能需要查找并获取唯一值,特别是唯一字符串。...在VBA,AdvancedFilter方法是处理这种情形非常强大一个工具。该方法可以保留原数据,采用基于工作表条件,可以找到唯一值。下面,将详细介绍如何获取并将唯一值放置在单独地方。...如果数据没有标题,即第一个单元格是常规值,则第一个值可能会在唯一列表中出现两次。 通常,我们只是在一列查找唯一值。...例如,如果在列B查找唯一值,则代码如下: Range("B:B").AdvancedFilter 或者: Columns(3).AdvancedFilter 注意,单元格区域可以是Columns集合单个列...") If iBeforeCount iAfterCount Then MsgBox ("原数据有重复值") End Sub 小结 本文展示了如何在单列或连续列筛选出唯一记录,如何将结果放在一个单独位置供以后比较

    8.4K10

    VBA自定义函数:在单元格区域中创建不重复随机数

    标签:VBA,自定义函数 有时候,我们需要创建一组不重复随机组,例如在指定单元格区域中创建一组不重复随机数用于模拟数据分析。 下面的一个VBA自定义函数,可用于创建指定数值范围不重复随机数。...As Long '要选择随机值数目 (默认为全部) Dim TempArray_Source() '保存最小值到最大值列表 Dim TempArray_Result...用于消除重复 Dim UsedSourceNo As Long '源数组随机选择....Result_Index Application.ScreenUpdating = True RandomSeq = TempArray_Result End Function 要在单元格区域A1:A10000创建...1至10000之间不重复随机数,调用RandomSeq函数并实现目标的代码如下: Sub RandomSeq_Example_Usage() Dim TestArray() Dim DestRange

    33010

    Excel实战技巧67:在组合框添加不重复值(使用ADO技巧)

    很多情况下,我们需要使用工作表数据来填充组合框,但往往这些数据中含有许多重复值。如何去除重复值并得到唯一值,这是一个永恒的话题,大家也会用到各式各样方法得到结果。...本文讲解一种技巧,使用Recordset(记录集)来获取唯一值并将其填充到组合框。 示例数据如下图1所示。在工作表中有一个组合框,需要包含列A省份列表,但是列A中有很多重复省份数据。 ?...图4 3.可以使用如下所示命名区域代替硬编码单元格区域: Myrecordset.Open “Select Distinct [省份] from [命名区域]” 4.可以编写VBA代码遍历数组来获取唯一值...然而,上面的方法更容易,并且使用记录集允许装载记录集中快速调整查询来捕获另一个字段或者创建另一个组合框。...2.Data Source:告诉VBA在哪里找到包含所需数据数据库或工作簿。使用Data Source参数,要传递完整数据库或工作簿路径。

    5.6K10

    NerbianRAT样本分析报告

    4.1 doc宏代码分析 双击打开doc文件发现是一个带宏文档,文档诱导用户点击启用宏脚本 这里我使用olevba脚本来分析此word文档vba代码 olevba脚本已经帮我们分析出了此vba...代码主要功能,解码Base64字符串我们大致可以判断此vba脚本使用powershellC2下载了payload并写入本地文件夹执行。...正常如果获取到了本机IP归属地会和列表地区进行比较,我们可以看到此列表,只有两个具体地区伦敦和俄罗斯在这两个中间单词都为一些少儿不宜的话。...一共对比了列表7个单词,2到6个单词可以猜测此恶意软件作者可能是个种族歧视主义者。...同样将MD5值类型转换为16进制 接着生成了一个唯一ID 接着将生成唯一ID转为大写字母 函数main_H5NzwUxN获取收集了主机名称等信息 函数main_JgJWgOp调用ReadFile

    1K20

    一个VBA自定义函数,使用文本格式连接唯一值单元格

    标签:VBA实用代码 一个单元格区域内有一组数字,这些数字存在多个相同数字,想要将这些数字唯一值提取出来并组合成一串数字文本,如下图1所示。...图1 可以使用VBA编写自定义函数来实现,代码如下: Function ConcatenateUnique(ByRef rngRange As Range, _ Optional ByVal...End If Next rng '返回结果字符串 ConcatenateUnique = strAnswer End Function 这个函数仅将指定单元格区域中唯一使用可选格式字符串连接起来...这段代码来自strugglingtoexcel.com。通常,我们会考虑使用Dictionary对象,在连接符合要求值之前获取唯一列表。...然而,这段代码另辟蹊径,使用VBAInStr函数,在连接之前检查是否已将值添加到结果,如果没有则添加。巧妙实现方法!

    1.8K20

    ExcelVBA与python产生不重复随机数

    =======ExcelVBA===== VBA编程实现不重复随机数输出。VBA随机函数是RND,在工作表随机函数是RAND,一字之差,可要记好了。...如果不使用Randomize 语句,那么每次执行程序时产生随机数序列是相同。   ...注意:若想得到重复随机数序列,在使用具有数值参数 Randomize 之前直接调用具有负参数值 Rnd。使用具有同样 number 值 Randomize 是不会得到重复随机数序列。...===== Python产生一个数值范围内不重复随机数,可以使用random模块random.sample函数,其用法如下: >>>import random >>>random.sample...(population,k) 函数序列或集合population返回一个长度为k随机数列表,并且列表随机数元素之间是不重复,如: 【方法一】 >>>a =[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

    1.4K30

    VBA变量5年踩坑吐血精华总结

    是的,那么我们用VBA如何实现呢? image.png 我们观察发现:行号是变化,而且是「正向递增加1」规律。 在VBA,我们将这种根据需要能够随时变化称为变量。...F1值为 28,单元格H1值为30,计算二者之间值 image.png (6)最后,将二者乘积赋值给「单元格F1」,并执行值写入操作 image.png 通过,以上我们使用VBA变量使我们程序更加灵活...但是这样操作,有以下几点缺点: 1)程序写起来特别的长,非常容易出错; 2)代码不易维护,修改难度大; 3)VBA内存读取变量时间要远低于读取单元格时间; 因此,可以总结使用变量有以下好处(拿小本本记好...但是,大家需要注意给VBA变量取名字 需要注意以下几点: (1)尽量使用有意义名字,且尽量使用英文或拼音命名 一方面,变量命名有意义就是大家可以读懂,知道变量表达意义,增强代码可读性。...3.总结 好了,总结一下今天VBA知识点。 (1)变量就是根据需要能够随时变化使用它有以下3个优点: a.程序灵活,易于维护和修改; b.代码简洁,更加优雅; c.执行速度更快,效率更高。

    1.7K00

    使用VBA自动化处理表代码大全1

    标签:VBA 表是Excel最强大功能之一。使用VBA控制表提供了一种强大自动化方法。 在Excel,将数据存储在表为数据处理提供了极大方便。...表有一些基本结构规则,例如表标题必须是唯一,只允许一个标题行,这使得表与更复杂工具能够兼容,例如,Power Query、数据透视表和SharePoint使用表作为数据源或输出方式。...表最早是在Excel2007引入,是对Excel 2003列表功能替换。但在VBA,文档对象模型(DOM)没有随着升级后功能而更改。...因此,尽管在Excel中使用术语“表”,但在VBA仍被称为ListObjects。 表结构 在讲解处理表VBA代码之前,理解表结构是非常有用。...图6 本文接下来VBA代码详细讲解如何操作所有这些表对象。 未完待续……

    31020

    Office文件打开密码测试工具

    文档加密方式来看,因为使用了hash函数,所以直接破解出密码理论上应该是不可能。...2 使用VBA测试密码 因为VBA里提供了Workbooks.Open方法,是允许带密码参数,所以使用这个也可以做个简单密码测试工具: Set wk = Workbooks.Open(Filename...工具左边是个树形目录,展示是复合文档结构,Office文件加密后都是保存为复合文档,后续看情况把复合文档一些解析功能也加进来,比如VBAProject里介绍VBA模块代码提取、模块隐藏等。...工具获取密码方式目前提供了2种: 一种是输入元素进行排列组合获取:元素按空格隔开,可以是多个字符元素,比如[0 1 aa xiong 2],这表示5个元素;排列组合选择数量可以输入多个,比如可能是元素...使用过程中发现bug也欢迎随时联系我。 获取方式: 在微信公众号回复oct获取

    77220

    使用VBA实现数字雨效果

    标签:VBA,条件格式 在Excel,借助于Excel公式、条件格式和一点点VBA代码,也能实现高科技题材电影数字雨效果。如下图1所示。 图1 下面详细讲解如何实现这样效果。...在工作表第一行单元格区域A1:AP1,输入0至9之间随机数,可以使用RANDBETWEEN函数来创建随机数,然后调整列宽以方便查看,如下图2所示。...AR1输入1至40数字,间隔50毫秒。...在“新建格式规则”对话框,选择规则类型“使用公式确定要设置格式单元格”,在“为符合此公式值设置格式”输入公式: =MOD($AR$1,15)=MOD(ROW()+A$1,15) 单击“格式”按钮...在“条件格式规则管理器”,单击“新建规则”,按上述步骤,选择规则类型“使用公式确定要设置格式单元格”,在“为符合此公式值设置格式”输入公式: =MOD($AR$1,15)=MOD(ROW()+A

    1.4K30

    示例工作簿分享:筛选数据

    标签:VBA,用户窗体 这是一个很好示例,充分展示了VBA和用户窗体控件编程技术。 示例中有一个数据工作表Sheet1,包含有一个列表,每一行单元格中都有很多用逗号分隔数据,如下图1所示。...图1 工作表Sheet2列出了数据唯一值,如下图2所示,可以根据工作表Sheet1数据添加而更新。 图2 创建了一个用户窗体,用来进行数据筛选,如下图3所示。...图3 这个示例工作簿有以下功能: 1.按F3会运行更新代码更新工作表Sheet2唯一项,并以红色标注出新添加项。 2.按F4键将调出图3所示用户窗体。...3.在用户窗体: (1)左侧列表框列出了工作表Sheet2所有唯一项。 (2)在搜索框输入内容时,会随着输入自动缩减左侧列表内容。...…… 有兴趣朋友可以在完美Excel微信公众号中发送消息: 筛选数据示例 获取示例工作簿下载链接。 或者,直接到知识星球App完美Excel社群中下载该示例工作簿。

    15410
    领券