ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 类的继承、封装 演示。 Dictionary 词典 的增强!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-7-11 15:20 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 山中老人 于 2020-7-11 15:50 编辑

在VBA 中 Scripting.Dictionary 词典 真是一个非常号的东西,我的程序很多地方都使用到它。
经常使用中感觉一些功能有欠缺,就自己封装了一个类DevelopDictionary,保留原有的所有功能,再添加了一些功能。
大家有什么好的想法,也可以提出来,我可以加进去。

1、添加了一些属性和方法:复制(克隆)、排序、定位、词典合并、与字符串的相互转换。
2、与原有的Scripting.Dictionary能良好的互换。
3、添加了【事件】触发与处理(默认关闭)


新增属性和方法:
'将内部词典复制出来
Public Function DicCopy(Optional ByVal CompareMode As VbCompareMethod = -999999) As Scripting.Dictionary


'克隆自己
Public Function Clone() As DevelopDictionary


’词典排序
Public Function Sort(Optional KeySort As Boolean = True, Optional DESC As Boolean = False) As Boolean
    'KeySort=True 按Key排序;KeySort=False 按Item排序
    'DESC=True 从大到小排序;DESC=False 从小到大排序



'向内部词典 追加一个词典全部项目
Public Function AddDic(Dic As Scripting.Dictionary) As Boolean


'分解字符串,添加为词典项目
Public Function StrSplit(ByVal Str As String, Optional ByVal RowDelimiter As String = ",", Optional ByVal KeyDelimiter As String = "=") As Boolean
    'RowDelimiter=行分解分割字符;KeyDelimiter=Key与Item分割字符

'词典项目,聚合成字符串
Public Function StrJoin(Optional ByVal RowDelimiter As String = ",", Optional ByVal KeyDelimiter As String = "=") As String
    'RowDelimiter=行分解分割字符;KeyDelimiter=Key与Item分割字符

'获取项目位置
Public Property Get Index(Key As Variant) As Long



补充内容 (2020-7-14 20:59):
Dictionary 词典增强,第二弹! 2维字典
http://club.excelhome.net/thread-1547280-1-1.html


补充内容 (2020-7-17 20:39):
字典排序 优化!
http://club.excelhome.net/thread-1547696-1-1.html

DevelopDictionary.rar

3.65 KB, 下载次数: 95

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-7-11 20:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢分享,是个好东西

TA的精华主题

TA的得分主题

发表于 2020-7-11 21:06 | 显示全部楼层
谢谢分享,如果有实例就好了

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-12 22:29 | 显示全部楼层
风筝那根线 发表于 2020-7-11 21:06
谢谢分享,如果有实例就好了

不是有附件吗? 你下载后,导入就好了!
代码没加密,你看原文就好了!  
可以全面替代原有词典。

TA的精华主题

TA的得分主题

发表于 2020-7-13 02:31 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这也太牛了,太棒了

TA的精华主题

TA的得分主题

发表于 2020-7-13 08:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-7-13 09:52 | 显示全部楼层
这句提示 :用户定义类型未定义
Private Function toEventS(ByRef EventName As String, Optional ByRef Key As Variant = Null, Optional ByRef EventInfo As DevelopDictionary = Nothing, Optional ByRef PathDic As Scripting.Dictionary = Nothing) As Variant '事件调用方法

TA的精华主题

TA的得分主题

发表于 2020-7-13 10:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-13 20:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
风筝那根线 发表于 2020-7-13 09:52
这句提示 :用户定义类型未定义
Private Function toEventS(ByRef EventName As String, Optional ByRef K ...


捕获.JPG

Book1.rar

42.6 KB, 下载次数: 20

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-13 20:14 | 显示全部楼层
chis3 发表于 2020-7-13 10:00
樓主強大
但可以寫文詳解就更好了

先了解一下原版的词典Scripting.Dictionary吧!

论坛里有大量的介绍。知识树中搜索【字典】。

你不了解它,就很难理解我的这个类!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 15:31 , Processed in 0.050402 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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