ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 字典套字典用法集锦

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-13 23:52 | 显示全部楼层
好东西要拿出来分享,问题是能不能指导下,看不明白的地方啊

TA的精华主题

TA的得分主题

发表于 2023-5-14 08:04 | 显示全部楼层
版主,辛苦了,谢谢

TA的精华主题

TA的得分主题

发表于 2023-5-14 08:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-14 09:33 | 显示全部楼层
本帖最后由 sunshuangzhong 于 2023-5-14 09:37 编辑

好东东,又要研究一阵子了。

TA的精华主题

TA的得分主题

发表于 2023-5-14 10:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
其实字典嵌套字典,很简单
反正字典就两样东西,一个是关键词,一个是健值
字典嵌套字典,莫非就是代码帮你创建多个字典罢了
实际上跟你自己创建多个字典的用法是一样的(只不过无法用数组关键词进行创建罢了,脑补就好)
反正你不要把它们当作同一个字典就好了,如d是一个字典,d(Arr(i,1))也是一个字典
d(Arr(i,1)   (i) 这里,前面是一个字典部分,相当于d,后面括号才是它的关键词,其实跟d(i)是一样的
只不过它换了一个名称,难道把d 换成d1 或者dic你就不认识了?
真不明白,你就先不着急,先把第一层字典的关键词输出到Excel中
然后第二层的字典就是以输出的关键词再创建字典,你可以分别再输出这些字典的关键词
这样子你就会明白了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-5-14 10:14 | 显示全部楼层
第一题的答案,这个人的方法个人觉得最佳!
Sub mscmsc()
    Dim Arr, d, dd, mh As Integer, hbstr
    Set d = CreateObject("scripting.dictionary")
    Set dd = CreateObject("scripting.dictionary")
    mh = Cells(65536, 1).End(xlUp).Row
    Arr = ActiveSheet.Range("a1:e" & mh)
    For i = 2 To UBound(Arr)
        hbstr = Arr(i, 1) & Arr(i, 3) & Arr(i, 4)
        If d.Exists(Arr(i, 4)) Then
            If dd.Exists(hbstr) Then
                Arr(i, 5) = dd(hbstr)
            Else
                d(Arr(i, 4)) = d(Arr(i, 4)) + 1
                dd(hbstr) = d(Arr(i, 4))
                Arr(i, 5) = dd(hbstr)
            End If
        Else
            Arr(i, 5) = 1
            d(Arr(i, 4)) = Arr(i, 5)
            dd(hbstr) = Arr(i, 5)
        End If
    Next
    Range("e1:e" & mh) = Application.Index(Arr, , 5)
End Sub

TA的精华主题

TA的得分主题

发表于 2023-5-14 11:04 | 显示全部楼层
前几天还看到有个求助数组和字典嵌套的帖子。论坛数组和字典的用法应该是非常非常多,随便一搜就一堆。版主这个文件收集了好多常规用法,值得自己看看学习

TA的精华主题

TA的得分主题

发表于 2023-5-14 15:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-14 15:19 | 显示全部楼层
谢谢 版主                                                                  

TA的精华主题

TA的得分主题

发表于 2023-5-14 15:30 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 15:26 , Processed in 0.042359 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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