ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 张雄友

[求助] 香川随机乱序在会计上的广泛应用!

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-16 14:30 | 显示全部楼层
本帖最后由 张雄友 于 2015-3-16 15:19 编辑
香川群子 发表于 2015-3-15 20:27
1. 选择单列范围执行宏,即可得到单列的随机乱序结果。

2. 如果需要同时对多列,或多行内容进行各自分 ...



2. 如果需要同时对多列,或多行内容进行各自......


Sub 按列测试() '忽略空值未有反应过来!!有点难度!


    arr = [A1:G12] '读取A1:G12数据为二维数组arr
    brr = getRndarr(arr, 1, UBound(arr, 2), UBound(arr, 2), -1)  '将此二维数组arr按列进行随机乱序得到数组brr
    [J1:P12] = brr  '输出随机乱序后的数组brr 其中每一列中的行还保持原来的顺序不变
End Sub


Function getRndarr(trr, a, b, n, Optional k = 0)
    '参数1: trr为待随机乱序数组
    '参数2-3: a、b为待随机乱序数组的起始、结束位置
    '参数4:  需要随机抽取的元素个数n
    '参数5:  描述数组状态k: k=0为一维数组、k=1为二维数组按行乱序、k=-1为二维数组按列乱序
    Randomize '随机种子初始化
    If k < 0 Then l = LBound(trr, 2) Else l = LBound(trr) '获取数组最小下标l
    For i = l To n + l - 1 '多行多列数组正序洗牌
        r = Int(Rnd * (b - a + 1 - (i - l))) + a + (i - l) '获得不重复随机位置r
        If k = 0 Then
            t = trr(r): trr(r) = trr(i + a - l): trr(i) = t '一维数組正序洗牌
        ElseIf k = 1 Then
            For j = LBound(trr, 2) To UBound(trr, 2)
                t = trr(r, j): trr(r, j) = trr(i + a - l, j): trr(i, j) = t '二维数组按行洗牌 各列移动但列顺序不变
            Next
        ElseIf k = -1 Then
            For j = LBound(trr) To UBound(trr)
                t = trr(j, r): trr(j, r) = trr(j, i + a - l): trr(j, i) = t '二维数组按列洗牌 各行移动但行顺序不变
            Next
        End If
    Next
    getRndarr = trr '随机乱序结果输出为和原数组一样大小的数组
End Function


忽略空值按行列分别乱序.rar

11.56 KB, 下载次数: 16

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-17 13:36 | 显示全部楼层
yzyyyyyyy 发表于 2015-3-16 11:33
2. 如果需要同时对多列,或多行内容进行各自分开的随机乱序,那么只要代码加入按列或按行的循环操作即可。 ...

做不到啊。

忽略空值按行列分别乱序.rar

11.62 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2016-11-7 17:49 | 显示全部楼层

老师能不能把你的这个附件(忽略空值乱序针对空值论事123.rar)改成一键各行各自乱序排列,这样就不需要自己一行一行的选择排列了。希望帮忙改动一下,谢谢。见附件

乱序排列.rar

13.9 KB, 下载次数: 7

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-11 22:30 , Processed in 0.030401 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表