ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求编一个VBA代码能实现随意安排位置(32人)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-6 12:25 | 显示全部楼层
lmx3517 发表于 2014-7-6 08:19
首先感谢这位朋友的帮助,您编写的程序非常好,我非常感谢您!!!在我测试中发现几个问题看看如何解决: ...

你这就是个分班问题,区域数=分班数

参见

均衡分班    3L 附件
http://club.excelhome.net/thread-1135195-1-1.html

TA的精华主题

TA的得分主题

发表于 2014-7-6 18:39 | 显示全部楼层
本帖最后由 bluexuemei 于 2014-7-6 19:03 编辑
  1. Sub t()
  2. '需要安装ACTIVERUBY ,下载地址 http://www.artonx.org/data/asr/Ruby-2.1.1.msi
  3. Set ojs = CreateObject("scriptcontrol"): ojs.Language = "rubyscript"
  4. ojs.eval ("def aa(aa);$aa=aa;end")
  5. y = ojs.Run("aa", Range("b4", [c4].End(4)).Value)
  6. y = ojs.eval("$aa.group_by{|x|x[1]}.values.sort_by(&:size).reverse.map{|x|(x.size==4)?x:x<<[nil,nil]}.map(&:shuffle).transpose.map{|n|n.reject{|x|x[0].nil?}}.shuffle.flatten(1)")
  7. [h4].Resize(UBound(y) + 1, 2) = y
  8. Set ojs = Nothing
  9. 'Stop
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-6-9 20:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-1-14 22:03 | 显示全部楼层
chxw68 发表于 2014-7-6 09:08
第1、3个问题已经解决了,解决第2个问题还需要一点时间,这个问题确实有些难。

求大神解答一下,在实际工作当中遇到了一个这样的问题,在论坛里面查找了,发现了一些线索,但没有找到最优的解决方案,烦请大家帮我关注一下
1、班级人数不同(30,33,37,45,48.........)
2、教室容量固定(110人)
3、如何科学合理的合班,满足最大化利用教室的功能
     a,算出一个合班人数最佳的值,使所有的合班达到这个平均值
     b,按教室容量最大110人进行合班,不考虑可能存在最后一到二个班人数非常低的情况
现在不论是那种方式,希望大神能提供解决方案,

函数1.zip (303.89 KB, 下载次数: 6)

附件当中的函数借鉴了论坛当中的大神解答,存在2个问题
1、只是算出来了固定一个教室容量值可能的组合情况;
2、取出来的组合存在重复的情况;

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

本版积分规则

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

GMT+8, 2024-11-18 19:55 , Processed in 0.024836 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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