VBA随机抽取 - 范文中心

VBA随机抽取

12/09

Sub 随机挑选演示程序1()

Dim arr

Dim x As Integer, num As Integer, k As Integer

Range('c1:c10') = ''

Range('a1:a10') = Application.Transpose(Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'))

For x = 1 To 10

num = (Rnd() * (10 - 1) + 1) \ 1

Range('a1:a10').Interior.ColorIndex = xlNone

Range('a' & num).Interior.ColorIndex = 6

Range('c' & x) = Range('a' & num)

Next x

End Sub

Sub 移形换位演示程序()

Dim arr

Dim x As Integer, num As Integer, k As Integer, sr As String

Range('c1:c10') = ''

Range('a1:a10') = Application.Transpose(Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'))

For x = 1 To 10

num = (Rnd() * ((10 - x + 1) - 1) + 1) \ 1

Range('a1:a' & (10 - x + 1)).Interior.ColorIndex = xlNone

Range('a' & num).Interior.ColorIndex = 6

Range('c' & x) = Range('a' & num)

'下面开始换位

sr = Range('a' & num)

Range('a' & num) = Range('a' & (10 - x + 1))

Range('a' & (10 - x + 1)) = sr

Range('a' & (10 - x + 1)).Interior.ColorIndex = 1

Next x

End Sub

Sub 随机抽取字典法()

Dim d As Object

Dim arr, num As Integer, x As Integer, arr1(1 To 20000, 1 To 1) As String, t

t = Timer

Set d = CreateObject('scripting.dictionary')

arr = Range('a1:a20000')

For x = 1 To 20000

100:

num = Rnd() * (20000 - 1) + 1

If d.exists(num) Then

GoTo 100

Else

d(num) = ''

arr1(x, 1) = arr(num, 1)

End If

Next x

Range('c1:c20000') = ''

Range('c1:c20000') = arr1

[d65536].End(xlUp).Offset(1, 0) = Timer - t

End Sub

'提速依据

'在换位时数字的换位速度要比文本型要快。所以借力数值型数组达到提速的目的

Sub 移形随机排序()

Dim arr

Dim arr1(1 To 20000, 1 To 1) As String, sr As String

Dim x As Integer, num, t

t = Timer

arr = Range('a1:a20000')

For x = 1 To UBound(arr)

num = (Rnd() * ((20000 - x + 1) - 1) + 1) \ 1

arr1(x, 1) = arr(num, 1)

'换位

sr = arr(num, 1)

arr(num, 1) = arr(20000 - x + 1, 1)

arr(20000 - x + 1, 1) = sr

Next x

Range('c1:c20000') = ''

Range('c1:c20000') = arr1

[d65536].End(xlUp).Offset(1, 0) = Timer - t

End Sub

Sub 移形随机排序升级()

Dim arr

Dim arr1(1 To 20000, 1 To 1) As String, sr As Integer

Dim x As Integer, num, t, y

Dim arr2(1 To 20000)

t = Timer

arr = Range('a1:a20000')

For y = 1 To 20000

arr2(y) = y

Next y

For x = 1 To UBound(arr)

num = (Rnd() * ((20000 - x + 1) - 1) + 1) \ 1

arr1(x, 1) = arr(arr2(num), 1)

'换位

sr = arr2(num)

arr2(num) = arr2(20000 - x + 1)

arr2(20000 - x + 1) = num

Next x

Range('c1:c20000') = ''

Range('c1:c20000') = arr1

[F65536].End(xlUp).Offset(1, 0) = Timer - t

End Sub


相关内容

  • 问卷调查系统的设计与实现----谢传海
    郑州师范学院 毕业论文(设计) 题目 问卷调查系统的设计与实现 姓名 学号 院 系信息科学与技术学院 专业计算机可与与技术 年级班级 2016年5月20日 毕业论文(设计)作者声明 本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行 ...
  • 统计学 推断统计习题
    总体均值的估计 (总体方差σ²已知) 1. 某企业加工的产品直径X是一随机变量,且服从方差为0.0025的正态分布.从某日生产的大量产品中随机抽取6个,测得平均直径为16厘米,试在0.95的置信度下,求该产品直径的均值置信区间. 2. 一家 ...
  • 分层抽样(精品数学教案)
    分层抽样(精品教案) 教学目标: 1.知识与技能: (1)正确理解分层抽样的概念: (2)掌握分层抽样的一般步骤: (3)区分简单随机抽样.系统抽样和分层抽样,并选择适当正确的方法进行抽样. 2.过程与方法:通过对现实生活中实际问题进行分层 ...
  • 20**年分层抽样
    第二章:统计教学案 2.1.3分层抽样2.1.4数据的收集 命题人:杜古清;打印:程元伟;使用日期 要点须知: 1.分层抽样的概念:将总体的各个个体按某种特征分成若干个的 几部分,每一部分叫做 ,在各层中 按 进行简单随机抽样,这种抽样方法 ...
  • 七夕情人节营销方案大全
    酒店七七情人节活动策划方案 酒店七七情人节活动策划方案 简介:活动目的:以七七情人节为契机,密切公司与新老业主.客户之间的关系,公司口碑,客户及公司的认同,为项目积累客源. 参加:所有本公司的情侣业主均可参加 活动主题:"岁月无声 ...
  • 第六章抽样调查练习及答案
    第 六章 抽样调查 一.填空题 1.抽选样本单位时要遵守 原则,使样本单位被抽中的机会 . 2.常用的总体指标有 . . . 3.在抽样估计中,样本指标又称为 量,总体指标又称为 . 4.全及总体标志变异程度越大,抽样误差就 :全及总体标志 ...
  • 招标文件预选承包商库范本
    招标投标格式文本四 南昌市使用预选承包商施工招标 招 标 文 件 赣建洪招字[]第 号 招标项目: 招 标 人: (章) 法定代表人: (章) 联 系 人: 电话: 编制时间: 南昌市建设工程招标投标监督管理办公室印制 二〇一二年 投 标 ...
  • 华东师大数学九年级下第28章样本与总体单元检测题含答案
    华东师大版数学九年级下册 第28章 样本与总体 单元检测题 一.选择题 1.下面调查中,适宜采用普查的是( ) A .调查亚洲中小学生身体素质状况 B .调查梧州市冷饮市场某种品牌冰淇淋的质量情况 C .调查某校甲班学生出生日期 D .调查 ...
  • 七年级数学下册统计复习
    一.统计调查 1. 数据处理的过程 (1).数据处理一般包括收集数据.整理数据.描述数据和分析数据等过程. 收集数据的方法:a .民意调查:如投票选举 b.实地调查:如现场进行观察.收集.统计数据 c.媒体调查:报纸.电视.电话.网络等调查 ...
  • 概率论试题及答案
    试卷一 一.填空(每小题2分,共10分) 1.设 2. 掷一颗骰子, 是三个随机事件,则表示"出现奇数点", 满足 , 至少发生两个可表示为______________________. 表示"点数不大于3&q ...