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

VBA -如何从一列中随机选择10%的行,确保它们是不同的,并在B列中放一个Y?

VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office套件中的宏语言。它可以用于自动化处理Office文档、创建自定义函数、编写宏等。

要从一列中随机选择10%的行,并确保它们是不同的,并在B列中放一个Y,可以使用以下VBA代码实现:

代码语言:txt
复制
Sub RandomSelection()
    Dim totalRows As Long
    Dim selectedRows As Long
    Dim rng As Range
    Dim cell As Range
    Dim randomRow As Long
    Dim selectedCount As Long
    
    ' 设置要处理的数据范围
    Set rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    
    ' 计算总行数和需要选择的行数
    totalRows = rng.Rows.Count
    selectedRows = Application.RoundUp(totalRows * 0.1, 0) ' 选择10%的行数
    
    ' 初始化随机数生成器
    Randomize
    
    ' 遍历选择行
    For selectedCount = 1 To selectedRows
        ' 随机选择一行
        randomRow = Int((totalRows - selectedCount + 1) * Rnd + 1)
        
        ' 将选中的行标记为Y
        Set cell = rng.Cells(randomRow, 1).Offset(0, 1)
        cell.Value = "Y"
        
        ' 将选中的行移到已选择的行的末尾
        rng.Cells(randomRow, 1).Cut rng.Cells(totalRows - selectedCount + 1, 1)
    Next selectedCount
End Sub

这段代码首先定义了一些变量,包括总行数、需要选择的行数、数据范围等。然后使用Randomize函数初始化随机数生成器。接着使用循环从数据范围中随机选择行,并在选中的行的相邻列(B列)中放入"Y"。最后,将选中的行移到数据范围的末尾,以确保所选行是不同的。

这是一个简单的VBA示例,可以根据实际需求进行修改和扩展。关于VBA的更多信息和学习资源,可以参考腾讯云的VBA开发文档:VBA开发文档

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

相关·内容

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

Excel中的单个单元格,其中x表示行,y表示列。...然而,它需要一点VBA来允许Excel调用Python函数。 Python脚本 让我们首先编写一个简单的Python函数,该函数生成10个随机数,然后将它们放在Excel工作表单元格A1中。...然而,VBA功能有限,使用xlwings,我们可以在Python中创建自己的用户定义函数。我们所需要的只是一个Python脚本,并在Excel中进行一些设置来实现。...上文中已讨论了如何修复此错误,确保Excel宏设置正确。 2.键入用户定义的函数时,单元格中会显示“Object Require”(对象要求)。...确保在VBA编辑器菜单“工具->引用”中选取了“xlwings”,并将更改保存到相应的Excel文件中。有时,当打开多个Excel工作表时,我们可能会无意中将此更改应用于另一个文件。

9.7K41

简单的Excel VBA编程问题解答——完美Excel第183周小结

Next循环中放入多少条Exit For语句? 没有限制。 12.Function过程与Sub过程有何不同? Function过程会向程序返回一个值,而Sub过程则不会。...13.过程中的代码行数有什么限制? 没有限制,但是良好的编程习惯规定过程不应太长,最多30至40行代码是合理的。 14.如何将数组作为参数传递给过程? 数组名后加上空括号。...17.VBA可以识别通用格式的日期,例如2020/11/11。在VBA代码中,如何表明该值是日期? 通过将其括在#字符中。 18.哪个VBA函数用于为日期添加间隔? DateAdd函数。...28.Range.Activate和Range.Select方法有何不同? 对于单个单元格区域,它们是相同的。...》的后续内容: 第9课:处理文本 第10课:使用Ranges和Selections 第11课:处理列(Columns),行(Rows)和单元格(Cells) 下周继续努力,争取推出更多有用的内容。

6.6K20
  • Excel实战技巧87:使用复选框控制是否显示相关图片

    在下列文章中,我们讲解了如何通过下拉列表显示相关图片的技术: Excel实战技巧15:在工作表中查找图片 Excel实战技巧21:在工作表中查找图片 Excel实战技巧22:在工作表中查找图片(使用VBA...首先,在工作表“照片”中放置图片名称和相应的图片。注意,在最后一行应包括一个内容为空的单元格,如下图1所示。 ?...图1 选择“照片”工作表中的单元格区域A2:B10,单击功能区“公式”选项卡“定义的名称”组中的“根据所选内容创建”命令,在弹出的“根据所选内容创建名称”对话框中选取“最左列”前的复选框,如下图2所示。...图2 选择“照片”工作表中的单元格区域A2:A10,将其内容复制到“显示”工作表中的单元格区域B1:B8。...图7 在“显示”工作表的其他行中进行同样的操作。在插入复选框并粘贴相应图片并进行相应的设置后,隐藏列C和列D,最终的效果如下图8所示。 ? 图8 很有趣的一项应用技术!

    3.3K20

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

    image.png 1.变量的基本知识 案例:在「单元格B3」输入不同的行号,然后点击「显示答案」按钮,程序就会自动计算右边相应题目的答案,如何实现?...image.png [备注] 1.题目中F列的数据采用了RANDBETWEEN(10,100),H列采用了RANDBETWEEN(20,50); 2.函数RANDBETWEEN(bottom,top)...,用于返回一个介于bottom(最小值)和top(最大值)之间的随机数,且每次Excel编辑后该公式都会自动刷新返回的随机数; 我们一起思考一下,这样一个需求用第02篇(todo文章传输门)分享的能够实现吗...是的,那么我们用VBA如何实现呢? image.png 我们观察发现:行号是变化的,而且是「正向递增加1」的规律。 在VBA中,我们将这种根据需要能够随时变化的称为变量。...我们用x代替,那么程序就变为: image.png 我们又知道,变量x的变化是依据「单元格B2」内容的变化而变化,也就是: image.png [备注] 在VBA中,「=」专业术语是「赋值」 即

    1.7K00

    NumPy 1.26 中文官方指南(二)

    如果你从一个具有 12 个元素的数组开始,你需要确保你的新数组也有总共 12 个元素。...当第一个索引改变时,矩阵按列存储在内存中一列一列地变化。这就是为什么 Fortran 被认为是一种基于列的语言。而在 C 中,最后一个索引最快变化。矩阵按行存储,使之成为基于行的语言。...如果您从一个具有 12 个元素的数组开始,您需要确保您的新数组也总共具有 12 个元素。...随着第一个索引的变化移动到下一行,矩阵按列存储。这就是为什么 Fortran 被认为是一种列主语言。另一方面,在 C 中,最后的索引变化最快。矩阵按行存储,使其成为一种行主语言。...如果你想获取唯一的行或列,请确保传递axis参数。要找到唯一的行,请指定axis=0,要找到唯一的列,请指定axis=1。

    35410

    啰哩啰嗦地讲透VBA中引用单元格区域的18个有用方法--Range属性

    本文讲解如何使用VBA处理单元格,解释使用Range对象所需了解的所有基本细节。Range对象是VBA中用于引用和处理单元格的对象,是ExcelVBA中最常用的对象之一。...VBA允许用户以多种不同的方式引用单元格区域。 什么是Range对象 Range对象代表工作表中的单元格区域,这意味着可以使用Range对象来引用: 单个单元格 一行或一列单元格。...选择的单元格,无论它们是否连续 三维单元格区域 从上面可以看出,Range对象的大小可能会有很大差异,你可以只引用单个单元格,也可以引用Excel工作表中的所有单元格。...该选择区域是一个Range对象。 由于Selection对象表示文档中当前选定的区域,因此上面的引用返回单元格C3。它不会返回单元格A1。...[A1] 快捷方式2:引用整行或整列 应用方括号的快捷方式是: 行:[行号:行号] 列:[列字母:列字母] 例如,如果引用工作表第1行或第1列,其语法为: 行:[1:1] 列:[A:A] 假设在Book1

    6.7K20

    常见的复制粘贴,VBA是怎么做的

    复制粘贴可能是Excel中最常见的操作,不然Microsoft怎么会把它们放置在最显眼显顺手的位置。当然,使用Excel VBA时,复制操作单元格区域是一项基本技能。...此外,它们被设计为从特定的源工作表复制到该示例工作簿中的另一个目标工作表。 通过调整对象引用的构建方式,可以轻松修改这些行为。...此表显示了100名不同销售经理按单位数和总美元价值对特定项目(A、B、C、D和E)的销售额。第一行(主表上方)显示每个项目的单价,最后一列显示每位经理的销售总值。...下面的简单过程在示例1的基础上添加了Destination参数,将工作表“Sample Data”中的单元格区域B5:M107复制到工作表“Example 2 - Destination”中的列B至列...如果忽略该参数,Excel不会转置复制区域的行和列。

    12.2K20

    VBA编程练习04. 在多个单元格区域查找多个数

    学习Excel技术,关注微信公众号: excelperfect 本次练习题 如下图1所示的工作表,在单元格区域A2:F2中放置的是要查找的数值;在列H至列BF、行9至行30是被查找的区域,这个区域分17...图1 现在,要在这17个小区域中查找单元格区域A2:F2中的值并将找到的数值的个数输入到其下方第32行的单元格中。如何使用VBA代码实现? VBA代码 先给出代码,再细细解释。...因为每3列一个小区域,所以很容易找到规律。以第1个小区域左上角为基点,每次循环向右偏移3的倍数列,移到每个小区域的左上角,然后将区域扩展到22行3列,即得到每个小区域。...Cells(2,j)分别查找A2至F2中的数值,将找到的数值的个数累加到变量iCount中。最后得到每个小区域中包含的数值的个数,然后将得到的个数值输入到第32行中相应单元格中。...代码中的外层循环遍历每个小区域,内层循环遍历A2:F2中的值。 小结 1.不要被工作表的表面所迷惑,要从中找到规律。 2.有时候,灵活使用工作表函数不失为一个好技巧。 下面是代码的图片版: ?

    1.6K10

    如何用2周时间促成一次1700+人参与的大数据行业调研

    值得注意的是,分析问卷类型的数据时,会遇到多选题的情况,这时原始数据的排列是不利于分析的。比如同一个问题下面,每一个选项的回答都会成为一列数据(如果选择了该选项则有值,如果没有选择则为空值)。...要进行数据分析,最好的选择是把原来的选项的标题作为一列,选项的内容作为相对应的另外一列,每行表示一个人的一次选择。 比如,原来有填写人X选了A选项和B选项,填写人Y选了B选项和C选项。...之前,ABC三个选项分别是三列,A列里包括填写人X,B列里包括填写人X和Y,C列里包括填写人Y: A, B, C X, X, null null, Y, Y 我们要做的就是将它们变成两列: X, A X..., B X, null Y, null, Y, B Y, C Tableau的Data Source页面,选中要转化的列,用pivot功能可以实现这一步。...附录 excel文本分列的vba代码 首先确保表格内的所有数据的格式都是aaa.xxx,其中aaa.是要去掉的内容,点前面的文字长度不限,因为是以点的位置把每列分开 在列之间循环,这里n的值等于表格包括的列数

    71460

    fast.ai 机器学习笔记(一)

    OOB 分数是一个很好的选择,可以告诉您哪一个是最佳的。 子采样[1:14:52] 之前,我们取了 30,000 行,并创建了使用该 30,000 行不同子集的所有模型。...对于行抽样,每棵新树都基于一组随机行,对于列抽样,每个单独的二元分割,我们从不同的列子集中选择。 0.5 意味着随机选择其中一半。...要使用shuf从文件中随机选择一行,请使用-n选项。这将限制输出为指定的数量。...共线性不会使你的随机森林更少预测,但如果 A 列与 B 列稍微相关,而 B 是独立变量的一个强驱动因素,那么重要性将在 A 和 B 之间分配。...3. max_features [12:22] 在每次分裂时,它会随机抽样列(与set_rf_samples选择每棵树的行子集相对)。听起来是一个小的区别,但实际上这是一种完全不同的思考方式。

    39010

    Excel省市交叉销售地图

    唯一有些区别的是XY坐标不再是固定的31省市,而是按照不同省份筛选出来的省内各地市坐标;此外,将本省内之外的所有交叉销量统称为省外。...步骤二:准备相应素材 2.1准备原始数据表:将原始数据用数据透视表处理成如下格式 ---- ---- ---- 注: 1)行字段是经销商所在城市,列字段是客户所在城市; 2)行和列均有总计,目的是后期计算省外的交叉销售数值...; 3)为后期作图美观,行和列城市一致时将其值设置为0; 2.2利用原始图复制粘贴,分别制作各省市射线图和气泡图,并在填充了省市底图后,记录下该省内各城市XY坐标: ---- 注: 1)省份,城市...,X,Y是必须字段; 2)省市之间留需要留一空列,用于VBA编程时CurrentRegion属性的使用; 3)X,Y坐标来自于填充了各省市背景地图的散点图,具体操作方法请参考全国省级别销售流向分析制图方法...步骤三:定义名称动态引用图表 ---- Step1:将省份切片器选择的省份名称,赋值给在”各省交叉销售地图“工作表中B2单元格。 Step2:交叉销售=INDEX(省市交叉销售!

    5.6K10

    啰哩啰嗦地讲透VBA中引用单元格区域的18个有用方法--Cell属性和Offset属性

    VBA对象可以是工作表(在Worksheet.Cells属性的情形)或可以是单元格区域(Range.Cells属性的情形)。 行号和列号是行和列的编号,通常使用数字。...替代的语法是: 表达式.Cells(单元格索引) 在这种特殊情况下,只有一个参数:相关单元格的索引。 那么,VBA如何确定一个单元格的索引呢?...编号分配将持续到… 单元格XFD2(第二行中的最后一个单元)被分配数字编号32768。 该过程继续到第三行。 然后是第四行。 依此类推,直到… 到达第1048576行。...例如,假设要处理从单元格A1到单元格B10的单元格区域,想要选择单元格A5。...因此,VBA将返回一个单元格,该单元格位于当前活动单元格的下方1行,右侧1列。例如,如果当前活动单元格为A1,则上面的语句返回单元格B2。

    4.1K40

    Python、VBA轻松自动化

    当你收集了 n 个人的 EXCEL 记录表,需要将它们汇成一个总表时你会怎么做呢? 如果不通过技术手段,要一个个打开再复制粘贴也太麻烦了吧! 此时就需要一个通过几秒钟的点击就能完成合并的工具。 ?...如下目录中放着 3 个待合并的 EXCEL 表,每个表中数据不同; ? 新建一个 EXCEL 文件后打开它,用于存放合并后的数据; ? 通过快捷键 Alt + F11 打开 VBA 界面; ?...即将同目录下其他 3 个 EXCEL 文件中的数据合并至此; ? 办公自动化有着各种各样的手段,下面让我们来看看万能的 Python 又是如何实现这个功能的。...那么如果是要分配工作,比如把一个大表按行数分成多份小表该如何实现呢?我们还是先来看看 VBA 版本。...如下图所示,将一个表中的 15 个任务拆分到了 3 个新的表中 ? ?

    2.4K20

    常用功能加载宏——单元格数据连接

    还有时候需要复制一小块单元格区域,可是复制过去可能就是一个表格,或者是被Tab符号分隔开的内容,并不是真正需要的: ?...默认从Excel中复制的数据,(如果是复制到Word这类支持表格的软件,会复制表格过去,这个时候还可以进一步转换为文本),列与列之间是使用Tab连接,上一行与下一行是使用换行符连接。...如果列之间的连接符Tab和行之间的连接符换行符可以自定义就好了,那么,我们来实现这么一个复制的功能: ?...> 1 Then '选择的单元格范围的行数 iRows = rng.Rows.Count '选择的单元格范围的列数...Next '将列单元格的Text连接起来,并存放到arrStr中 arrStr(iRow) = VBA.Join

    1.9K20

    Python 金融编程第二版(二)

    ③ 选择第一行的第三个元素;在括号内,索引由逗号分隔。 ④ 选择第二列。 ⑤ 计算所有值的总和。 ⑥ 沿第一个轴计算总和,即按列计算。 ⑦ 沿第二轴计算总和,即按行计算。...另一个特殊操作是将多维ndarray对象展平为一维对象。可以选择是按行(C顺序)还是按列(F顺序)进行展平。...② 检查x列中的值是否为正且y列中的值是否为负。 ③ 检查x列中的值是否为正或y列中的值是否为负。 使用结果布尔Series对象,复杂数据(行)的选择很简单。...② 所有x列的值为正且y列的值为负的行。 ③ 所有列中 x 的值为正或列中 y 的值为负的所有行(这里通过各自的属性访问列)。 比较运算符也可以一次应用于完整的 DataFrame 对象。...一个主要问题是如何处理索引值。

    20210

    Excel VBA编程教程(基础一)

    插入/删除模块 在一个 VBA 工程中想要插入新的模块时,可在 VBA 工程右键,选择插入类型即可。...过程 过程是 VBA 中,程序实际运行的最小结构。单独的一行或多行代码无法运行,必须把它们放置在一个过程里,才能运行。...在示例中,Cells() 就是一个 Excel VBA 对象,表示一个单元格,提供行号和列号指定单元格。 程序运行结构 接下来是程序结构中最核心的部分,也是最有意思的部分,程序运行结构。...VBA 中,有多种循环结构,本例中是 For 循环结构。For 循环结构中,第一行指定循环次数,最后一行表示开始下一个循环。...注释是对代码的一种解释,不影响代码的运行。VBA 中的注释语句是,以英文单引号 (')开头,后接需要解释说明的内容。 选择结构 if Then 结构 选择结构中,If Then 结构是最基础的一个。

    12.5K22

    20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子

    Sample Sample方法允许我们从DataFrame中随机选择数据。当我们想从一个分布中选择一个随机样本时,这个函数很有用。...Loc 和 iloc Loc 和 iloc 函数用于选择行或者列。 loc:通过标签选择 iloc:通过位置选择 loc用于按标签选择数据。列的标签是列名。...我们有三个不同的城市,在不同的日子进行测量。我们决定将这些日子表示为列中的行。还将有一列显示测量值。...我们也可以使用melt函数的var_name和value_name参数来指定新的列名。 11. Explode 假设数据集在一个观测(行)中包含一个要素的多个条目,但您希望在单独的行中分析它们。...Merge Merge()根据共同列中的值组合dataframe。考虑以下两个数据: ? 我们可以基于列中的共同值合并它们。设置合并条件的参数是“on”参数。 ?

    5.7K30

    Power Query 系列 (01) - Power Query 介绍

    本文先从一个例子,说明 Power Query 的典型步骤和 Power Query 主要构成。...如果是多个 Excel 工作表呢?我特意在网上搜索了一下,知乎有两篇文章,一篇是基于 VBA 的,另一篇是基于数据透视表多重合并计算区域的。 如何快速的合并多个 Excel 工作簿成为一个工作簿?...excel多表操作:如何快速完成多工作表汇总求和 VBA 对于普通 Excel 用户来说,掌握的人并不多。有了 Power Query 之后呢,合并工作表就变得轻而易举了。...,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0b25lMDgyMw==,size_16,color_FFFFFF,t_70] 另外,多个 Sheet 的表头都作加载到行中...的核心是查询对象,通过查询对象连接不同的数据源获取数据,并对数据进行处理和转换,得到处理后的结果。

    5.7K60

    fast.ai 深度学习笔记(二)

    因此,p=0.5是删除该单元的概率。输出实际上并没有太大变化,只是有点。 在一个层中随机丢弃一半的激活具有有趣的效果。需要注意的一点是,对于每个小批量,我们在该层中随机丢弃不同的一半激活。...分类变量[50:49] 我们创建一个新的矩阵,有 7 行,以及我们选择的列数(例如 4),并用浮点数填充它。...我们得到了一个 75 乘以 64 的张量(大约 70 行,但不完全) Torchtext 做的一个巧妙的技巧是每次随机更改bptt数字,因此每个时期它都会获取略有不同的文本片段 - 类似于在计算机视觉中对图像进行洗牌...下面是如何计算两个向量的点积的方法(例如(1, 2)⋅(2, 2) = 6 - 矩阵 a 和 b 的第一行): (a*b).sum(1) ''' 6 70 [torch.FloatTensor of size...首先我们创建一组随机的x和y,它们与x线性相关(例如y= ax* + b)。通过使用一组x和y,我们将尝试学习a和b。

    25510
    领券