ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[交流] 自娱自乐

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-14 20:53 | 显示全部楼层 |阅读模式
分出上下级.zip (12.96 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

发表于 2017-7-14 21:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个并不难。

在递归过程中灵活使用循环遍历,即可达到目的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-15 07:42 | 显示全部楼层
香川群子 发表于 2017-7-14 21:21
这个并不难。

在递归过程中灵活使用循环遍历,即可达到目的。

还是希望群子女侠能帮忙写一个代码,凭我的水平,真弄不出来啊.....

TA的精华主题

TA的得分主题

发表于 2017-7-15 13:28 | 显示全部楼层
是不是这个意思:
Sub test()
Dim ar, d, i&, dk, di, n&, tm
Set d = CreateObject("scripting.dictionary")
ar = [a1].CurrentRegion
For i = 1 To UBound(ar)
    d(ar(i, 1)) = ar(i, 2)
Next i
dk = d.keys: di = d.items
For i = 0 To UBound(dk)
    n = n + 1
    Cells(i + 18, n) = dk(i)
    n = n + 1
    Cells(i + 18, n) = di(i)
    Call digui(d, di(i), i, n)
    n = 0
Next i
End Sub
Sub digui(d, tm, i, n)
Dim s, j&
s = Split(tm, ",")
For j = 0 To UBound(s)
    If d.exists(s(j)) Then
        n = n + 1
        Cells(i + 18, n) = d(s(j))
        Call digui(d, d(s(j)), i, n)
    End If
Next j
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-15 14:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
小花鹿 发表于 2017-7-15 13:28
是不是这个意思:
Sub test()
Dim ar, d, i&, dk, di, n&, tm

首先,感谢小花鹿的帮助。
答案还有点出入,比如,
张良---彭占民,牛朝永,张克从,王利亚---
彭占民,牛朝永,张克从,王利亚   这四个人其实都要一级一级展开的,如下:


第1级别:张良
第2级别:彭占民,牛朝永,张克从,王利亚
第3级别:(下面是并列的)
彭占民的下级为---张建智;
牛朝永的下级为---贾贝,王印旗,郭志辉,王琪,吴建宏,杜彦士,彭亚卫,邸长虹,袁晓瑜;张克从的下级为---闫振群,李永强,马驰洋,郭俭,高彩云,杨国贞,陈士勇,邸士民,曹拥军,陈运钗,崔彦军,刘丽芝,李亚民,李田周,袁芸,杜涛;
王利亚的下级为---张晓丽,李子文,曹建恒,陈梦兰,刘圆,郭彩恋,常立军,刘彦平,杨晓明,宋丽永,纪永存,赵亚平;
第4级别:
张建智的下级为---贾红丽,曹彩珍,曹彦敏,张振其,刘志宏,刘芳,杨涛,赵永胜,曹永超,李子永
第5级别没有,因为第4级别的姓名当中在A列或字典当中没有存在的......





TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-15 14:16 | 显示全部楼层
小花鹿 发表于 2017-7-15 13:28
是不是这个意思:
Sub test()
Dim ar, d, i&, dk, di, n&, tm

首先,感谢小花鹿的帮忙,结果还有一点出入。
以  
张良彭占民,牛朝永,张克从,王利亚
为例子,其一级一级张开如下:第一级别:张良

第二级别:彭占民,牛朝永,张克从,王利亚


第三级别:
彭占民对应的下级----张建智
牛朝永对应的下级---贾贝,王印旗,郭志辉,王琪,吴建宏,杜彦士,彭亚卫,邸长虹,袁晓瑜
张克从对应的下级---闫振群,李永强,马驰洋,郭俭,高彩云,杨国贞,陈士勇,邸士民,曹拥军,陈运钗,崔彦军,刘丽芝,李亚民,李田周,袁芸,杜涛
王利亚对应的下级---张晓丽,李子文,曹建恒,陈梦兰,刘圆,郭彩恋,常立军,刘彦平,杨晓明,宋丽永,纪永存,赵亚平


第四级别:只有张建智有对应的下级,所以就是--张建智对应的下级
贾红丽,曹彩珍,曹彦敏,张振其,刘志宏,刘芳,杨涛,赵永胜,曹永超,李子永


第五级别没有对应的,所以没有
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-29 00:32 , Processed in 0.050015 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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