ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请问一下大神,有没有方法可以做到呀?拜托拜托

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-14 10:48 | 显示全部楼层 |阅读模式
本帖最后由 俘离 于 2018-8-14 11:23 编辑

要做一个资源分配的表,来来回回在论坛问了好多次了,每次有大神帮忙解决了,结果上司又说不是这样不是这样,简直崩溃!!!求各位大神帮忙,拜托拜托T-T比如图一中院一的资源需求填了50,然后根据公式优质资源分配了12,中等资源分配了13,劣质资源分配了25,那在图二里的表格中,如何根据分配结果,自动在相应数量 的“分配部门”列,填入部门名称,如“优质资源”自动填入12个院一 QQ图片20180814104257.png QQ图片20180814104625.png 案例.rar (23.07 KB, 下载次数: 16)

TA的精华主题

TA的得分主题

发表于 2018-8-14 10:57 | 显示全部楼层
看不懂什么意思                                                                                                           

TA的精华主题

TA的得分主题

发表于 2018-8-14 11:33 | 显示全部楼层
用公式就能解决了,看附件

案例.rar

16.59 KB, 下载次数: 3

头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-8-14 11:37 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-14 13:46 | 显示全部楼层
gaohong267 发表于 2018-8-14 11:33
用公式就能解决了,看附件

多谢多谢,但是。。。不是这样的呀,不能自动填入部门么?T-T

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-14 13:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
朱荣兴 发表于 2018-8-14 11:37
研究了半天,还真是看不懂,楼主不放模拟结果上传,可能会好理解一些吧。

我也很无奈呀。。。自己是小白,已经尽力说明详细了,但是我也觉得好像自己有点词不达意T-T

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-14 13:48 | 显示全部楼层
朱荣兴 发表于 2018-8-14 11:37
研究了半天,还真是看不懂,楼主不放模拟结果上传,可能会好理解一些吧。

我也很无奈呀。。。自己是小白,已经尽力说明详细了,但是我也觉得好像自己有点词不达意T-T

TA的精华主题

TA的得分主题

发表于 2018-8-14 15:58 | 显示全部楼层
俘离 发表于 2018-8-14 13:48
我也很无奈呀。。。自己是小白,已经尽力说明详细了,但是我也觉得好像自己有点词不达意T-T

'猜一个,假设C列有序

'按顺序写入未作随机分配,当然也可随机需再处理一下

Option Explicit

Sub test()
  Dim arr, i, j, k, n, brr, pos
  With Sheets("sheet3")
    arr = .Range("a2:f" & .Cells(Rows.Count, "a").End(xlUp).Row)
  End With
  brr = Sheets("sheet4").[c4].CurrentRegion
  For i = 1 To UBound(arr, 1): arr(i, 6) = vbNullString: Next
  For j = 3 To 5
    For i = 1 To UBound(arr, 1)
      If arr(i, 3) = brr(1, j) Then pos = i: Exit For
    Next
    n = 0
    For i = 3 To UBound(brr, 1)
      If IsNumeric(brr(i, j)) Then
        For k = 1 To brr(i, j)
          n = n + 1
          arr(pos + n - 1, 6) = brr(i, 1)
        Next
      End If
  Next i, j
  Sheets("sheet3").[a2].Resize(UBound(arr, 1), UBound(arr, 2)) = arr
End Sub

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-15 09:47 | 显示全部楼层
一把小刀闯天下 发表于 2018-8-14 15:58
'猜一个,假设C列有序

'按顺序写入未作随机分配,当然也可随机需再处理一下

哇!!!大神你又粗线了!!随机分配要怎么做呀?大神提供的代码我测试了一下,按照案例的分配方案使用VBA,院一只分配了总共48个资源,而分配列表我尝试把院一的部门需求改成35,允许一次VBA就变成很混乱的样子了T-TC:\Users\Administrator\Pictures\EXCEL提问 QQ图片20180815094710.png

TA的精华主题

TA的得分主题

发表于 2018-8-15 10:47 | 显示全部楼层
俘离 发表于 2018-8-15 09:47
哇!!!大神你又粗线了!!随机分配要怎么做呀?大神提供的代码我测试了一下,按照案例的分配方案使用VB ...

条件不够,表3行数与表4中的数据是有关联的,可以再上附件

你的问题不是问题本身而是要把这个问题描述清楚。我也是猜的,条件太少或不明确
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 05:01 , Processed in 0.026630 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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