ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 香川群子

[原创] 史上最酷的Excel VBA 组合算法 代码

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-15 15:39 | 显示全部楼层
本帖已被收录到知识树中,索引项:其他结构和算法
香川的最厉害,思维也是。

TA的精华主题

TA的得分主题

发表于 2013-7-15 15:58 | 显示全部楼层
好好学习,天天向上。二三天以内又有得活干了。。顶香川

TA的精华主题

TA的得分主题

发表于 2013-7-17 16:44 | 显示全部楼层
香侠头脑灵活.只有佩服,望多一点实例讲解更好!

TA的精华主题

TA的得分主题

发表于 2013-7-20 18:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请教香川大师:

在你的“香川Do循环组合”中,如果要在输出结果加上分割符,如何做到?(菜鸟的问题肯定菜的,别笑哦...)

例如: 原结果 “ABCD” ,加上分割符“+”后的结果: “A+B+C+D”

望大师赐教。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-21 08:12 | 显示全部楼层
本帖最后由 香川群子 于 2013-7-21 08:19 编辑
WebConNum 发表于 2013-7-20 18:57
请教香川大师:

在你的“香川Do循环组合”中,如果要在输出结果加上分割符,如何做到?(菜鸟的问题肯定 ...


很简单。

1. 整理原始数据时,每个元素前加上分隔符号 如 + 或 /
2. 组合代码不用改
3. 输出结果时 改为: jg(k,1)=mid(s,2)  即把第一个多余的分隔符去掉。


代码如下:
原始数据加分隔符:
ReDim sj$(1 To m) '定义数组sj 写入统一字符长度的原始数据m个元素。定义为字符型数组可提高速
For i = 1 To m
     sj(i) = "分隔符" & Right(s & sj0(i, 1), l) '原始数据调整至同样字符长度,并可在此处加上你想要的分隔符号
Next

然后 要进行
l=l + len("分隔符")处理。

这以后就是代码中输出部分改成:
jg(k, 1) = Mid(s,Len("分隔符")) '输出结果






TA的精华主题

TA的得分主题

发表于 2013-7-21 16:50 | 显示全部楼层
香川大师:

根据你的方法,在原始数据前加分隔符,然后,再经mid(s,2)处理.是能够达到我想要的结果.谢谢大师!

不过,你下面的内容是啥意思呢?

sj(i) = "分隔符" & Right(s & sj0(i, 1), l)    这一改就不行了(结果只剩分隔符了,没有原始数据)

还有,再请教大师,如果原始数据不变,只在代码中修改,那达到我说的结果吗?

TA的精华主题

TA的得分主题

发表于 2013-7-21 17:02 | 显示全部楼层
香川老师的最厉害,聪明过人,很是崇拜。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-21 18:47 | 显示全部楼层
WebConNum 发表于 2013-7-21 16:50
香川大师:

根据你的方法,在原始数据前加分隔符,然后,再经mid(s,2)处理.是能够达到我想要的结果.谢谢 ...

我告诉你的这个就是在代码中直接增加分隔符的方法。

至于你为啥不成功,估计是字符长度处理的问题。

如果要我帮你确认,请上你的附件和代码。

TA的精华主题

TA的得分主题

发表于 2013-7-21 19:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川大师:

在原始数据前加分隔符的方法是可以的,我已经试过了;

在代码中直接增加分隔符的方法,不知道我什么地方弄错了,测试不行.我现在把附近传上,请大师给看看.

Test.rar

17.97 KB, 下载次数: 59

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-21 20:11 | 显示全部楼层
B1单元格内写入 组合抽取数
B2单元格内写入 输出分隔符 (可输入任意长度字符,如留空则相当于没有分隔符)

B3单元格在代码运行后写入 组合结果总数
B4单元格在代码运行后写入 组合计算耗时

组合算法实例 by kagawa.rar

20.02 KB, 下载次数: 335

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

本版积分规则

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

GMT+8, 2024-11-17 07:35 , Processed in 0.040556 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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