ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: 山中老人

[分享] 死磕 Dictionary! 关于字典排序的 最终方案! 。。。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-9-12 09:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请问,这是是使用的多列数组加入develop字典吗,传统字典只能两列,不知道用法,能否介绍一下,谢谢老大.

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-13 08:01 | 显示全部楼层
本帖最后由 山中老人 于 2020-9-13 08:43 编辑
lixin_ 发表于 2020-9-12 09:31
请问,这是是使用的多列数组加入develop字典吗,传统字典只能两列,不知道用法,能否介绍一下,谢谢老大.

下载 19 楼的附件吧!

里面【模块1】 有演示的Sub。照着试试就知道了!
里面的类模块,也有注释!
DevelopDictionary2 在默认情况下就是一个Dictionary,所有Dictionary的使用方法,对DevelopDictionary2都有效!
要使用多列,首先用 DevelopDictionary2.ColumnCount =X '设置列数
========================
    Dim dd As DevelopDictionary2
    Set dd = New DevelopDictionary2
    dd.ColumnCount = 4 '设置列数 (4列)
    ‘指定列名(可选)。如果未设置列名,就只能使用列号进行列操作。
    dd.ColumnName(1) = "ID"
    dd.ColumnName(2) = "姓名"
    dd.ColumnName(3) = "年龄"
    dd.ColumnName(4) = "学历"
    ’给 1 行(Key=1)的各列赋值
    dd.Item(1, "ID") = 11
    dd(1, "姓名") = "张三"
    dd.Item(1, "年龄") = 25
    dd.Item(1, "学历") = "初中"
    ’输出 1 行(Key=1)的各列的值
    Debug.Print dd(1, "ID")
    Debug.Print dd.Item(1, "姓名")
    Debug.Print dd.Item(1, "年龄")
    Debug.Print dd.Item(1, "学历")  
’给 2 行(Key=2)的各列赋值
    dd.Item(2, "ID") = 12
    dd.Item(2, 2) = "李四" ’使用【列号】进行 列操作
    dd.Item(2, "年龄") = 54
    dd.Item(2, 4) = "文盲"

    Call dd.Sort("Key")'按Key值排序(从小到大)
    Call dd.Sort("姓名",True)'按[姓名]排序(从大到小)
    Debug.Print dd.StringOut(Chr(13), ",")‘以字符串格式输出整个词典内容








TA的精华主题

TA的得分主题

发表于 2020-9-13 08:45 | 显示全部楼层
山中老人 发表于 2020-7-24 06:35
2020-07-24
没啥可更新的了,稍稍优化了点代码,增加了测试用属性.

DevelopDictionaryd-26.xls每个模块都运行了下都没反应,不懂怎么使用...
请问数据准备是哪个模块?还有excel最多不是才1百万行?

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-13 08:55 | 显示全部楼层
本帖最后由 山中老人 于 2020-9-13 08:59 编辑
nk0769 发表于 2020-9-13 08:45
DevelopDictionaryd-26.xls每个模块都运行了下都没反应,不懂怎么使用...
请问数据准备是哪个模块?还有ex ...


无标题.jpg
输出结果在【立即窗口】。


这个DevelopDictionaryd2 本来就不是专门给EXCEL准备的。

数据准备部分:
2223.jpg

TA的精华主题

TA的得分主题

发表于 2020-9-13 12:01 | 显示全部楼层
山中老人 发表于 2020-9-13 08:01
下载 19 楼的附件吧!

里面【模块1】 有演示的Sub。照着试试就知道了!

老大,我的意思是使用您这个对于excel已有数据表格进行排序,像range直接赋给数组一样,就不是人为添加key和item

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-13 13:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 山中老人 于 2020-9-13 13:52 编辑
lixin_ 发表于 2020-9-13 12:01
老大,我的意思是使用您这个对于excel已有数据表格进行排序,像range直接赋给数组一样,就不是人为添加key和 ...

将单元格的数据读取到字典中,再排序,排序完了重写入单元格就好了!
两个循环语句的事,很简单啊!
而且,EXCEL本身自带排序功能,不需要用到这个字典!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-6-17 08:31 , Processed in 0.037467 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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