VBA m选n组合生成脚本

VBA 的组合生成脚本,写得还挺实用,尤其是那种需要从一堆数据里选出若干组合的场景——比如你想研究不同客户群体的搭配,或者在项目里试试不同人力分配的方式,靠手算?太费劲了。

m 选 n 组合这个事,说白了就是从 m 个东西里挑 n 个,顺序不重要。常见的场景有抽奖、排列商品、数据采样啥的。用VBA搞定这事还挺顺手,适合日常用 Excel 的人。

整个逻辑分几步:初始化变量递归或迭代生成组合写进 Excel 表格。中间你还能加个条件,比如“组合的和不能超过 100”这种,用得好能帮你过滤掉一堆没用的组合。

代码部分嘛,用For循环和数组就能搞定,你也可以试试递归,结构更清晰。下面是个简化版的伪代码:

Sub GetCombinations(m As Integer, n As Integer)
  ' 初始化变量
  ' 生成组合逻辑
  ' 输出结果到工作表
End Sub

对了,它还支持版本检测和值限制,如果你下载的文件名字里提到了这个,那程序做得更细。比如只输出“和小于 50 的组合”,还能自动适配你的 Excel 版本,兼容性挺不错。

建议:组合数量多的时候注意性能,别一口气算 C(30, 15),那可是十几万个组合。你可以用动态数组优化下,或者边计算边输出,别一下全堆内存里。

如果你平时用 Excel 做点数据,或者要写宏提高工作效率,这个VBA 组合生成器还是值得一试的。用好了,能省下不少时间。

rar
VBA - 组合生成算法 - by 灰袍法师 - 自动检测版本 - 增加和值限制.rar 预估大小:1个文件
file
VBA - 组合生成算法 - by 灰袍法师 - 自动检测版本 - 增加和值限制.xlsm 30KB
rar 文件大小:27.04KB