ECELVBA常见字典用法集锦及代码详解20240102090849.docx

凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。有了它们,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。

凡是上过EH论坛的想学习VBA里面字典用法的,几乎都看过研究过northwolves狼版主、oobird版主的有关字典的精华贴和经典代码。我也是从这里接触到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化的高手们致敬,从他们那里我们也学到了很多,也得到了提高。

字典对象只有4个属性和6个方法,相对其它的对象要简洁得多,而且容易理解使用方便,功能强大,运行速度非常快,效率极高。深受大家的喜爱。

本文希望通过对一些字典应用的典型实例的代码的详细解释来给初次接触字典和想要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。

字典的简介

字典(Dictionary)对象是微软Windows脚本语言中的一个很有用的对象。

附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹和文件的(FileSystemObject)对象也是微软Windows脚本语言中的一份子。

字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项

(Item)联合组成。就好像一本字典书一样,是由很多生字和对它们对应的注解所组成。比如字典的“典”字的解释是这样的:

“典”字就是具有唯一性的关键字,后面的解释就是它的项,和“典”字联合组成一对数据。

常用关键字英汉对照:

Dictionary字典

Key关键字

Item项,或者译为条目

字典对象的方法有6个:Add方法、Keys方法、Items方法、Exists方法、

Remove方法、RemoveAll方法。Add方法

object.Add(key,item)向

object.Add(key,item)

参数

object

必选项。总是一个Dictionary对象的名称。

key

如果key已经存在,那么将导致一个错误。

Dimd常用语句:

Dimd

Setd=CreateObject(Scripting.Dictionary)

Setd=CreateObject(Scripting.Dictionary)d.Adda,Athens

d.Addb,Belgrade

d.Addc,Cairo

代码详解

(Variant),d后面没有写数据类型,默认就是可变型数据类型(Variant)。也有写成

2、Setd=CreateObject(Scripting.Dictionary):创建字典对象,并把字典对象赋给变量d。这是最常用的一句代码。所谓的“后期绑定”。用了这句代码就不用先引用c:\windows\system32\scrrun.dll了。

3、d.Adda,Athens:添加一关键字”a”和对应于它的项”Athens”。

4、d.Addb,“Belgrade”:添加一关键字”b”和对应于它的项”Belgrade”。5、d.Addc,“Cairo”:添加一关键字”c”和对应于它的项”Cairo”。

Exists方法

object.Exists(key)如果Dictionary对象中存在所指定的关键字则返回true,否则返回false。

THE END
1.ExcelVBA教程字典DictionaryDim dic As New Scripting.Dictionary (2)后期绑定: Dim dic As ObjectSet dic = CreateObject("Scripting.Dictionary") 关于前期绑定与后期绑定的内容,可以参考我们之前分享过的一篇文章【前期绑定与后期绑定】 2、向字典中添加key-itme,也就是向字典里添加记录。 https://www.360doc.cn/article/83715600_1106099566.html
2.字典用法集锦5的数字。二、代码:Sub余1余5()‘by:狼版主DimdicAsObject,iAsLong,arrSet dic=CreateObject("Scripting.Dictionary")Fori=1To1000dic.Ad di&IIf(Abs(iMod6-3)=2,"@",""),""Nextarr=WorksheetFu nction.Transpose(Filter(dic.keys,"@"))[a1].Resize(UBound(arr),1 ...http://www.360doc.com/content/18/1004/16/10570236_791860826.shtml
1.itemstobedeleted误会一场的技术博客Item 50: Understand when it makes sense to replace new and delete. 我们在Item 49中介绍了如何自定义new的错误处理函数,以及如何为你的类重载operator new。 现在我们回到更基础的问题,为什么我们需要自定义operator new或operator delete? 检测使用错误。 https://blog.51cto.com/u_12219/12571963
2.为什么会出现ccriticalsection报错?CCriticalSection 是 MFC(Microsoft Foundation Class)库中用于多线程同步的一种机制,它提供了一种简单的方式来保护共享资源免受并发访问的问题,在实际使用中,开发人员可能会遇到各种与 CCriticalSection 相关的错误和问题,本文将详细探讨 CCriticalSection 报错的原因、解决方案以及常见问题的解答。 https://blog.huochengrm.cn/gz/12949.html
3.NetCore.AutoRegisterDi项目常见问题解决方案NetCore.AutoRegisterDi 是一个用于 .NET Core 项目的开源库,旨在简化依赖注入(DI)的配置过程。该项目通过扩展方法自动扫描并注册程序集中的类,从而减少手动配置的工作量。主要编程语言为 C#。 新手使用注意事项及解决方案 1. 依赖注入配置不生效 问题描述:在配置IServiceCollection后,依赖注入的服务无法正常解析。 https://blog.csdn.net/gitblog_00075/article/details/143942402
4.c++bind有哪些常见错误问答C++中的std::bind是一个非常有用的功能,它允许你绑定函数的一个或多个参数,生成一个新的可调用对象。然而,std::bind也有一些常见的错误和陷阱。以下是一些例子: 参数数量不匹配:当你尝试使用std::bind时,必须确保提供的参数数量与原始函数的参数数量相匹配。如果参数数量不匹配,编译器会报错。 void foo(int, ...https://www.yisu.com/ask/45553170.html
5.BoredApeYachtclub的合约代码中数值运算在新版solc编译后运行...}bytesmemorybuffer =newbytes(digits);uint256index = digits -1; temp = value;while(temp !=0) { buffer[index] =bytes1(uint8(48+ temp %10));if(index >0) index --; temp /=10; }returnstring(buffer); }functionsliceToString(bytescalldata arr ,uintstart)pureexternalreturns(stringmemory){...https://learnblockchain.cn/article/9936
6.使用VisualStudioCode對內嵌Python進行偵錯Kusto查詢語言...您可以使用 python() 外掛程式,在 Kusto 查詢語言 查詢中內嵌 Python 程式代碼。 外掛程式運行時間裝載於沙箱、隔離且安全的 Python 環境中。 python() 外掛程式功能會透過大量 OSS Python 套件封存來擴充 Kusto 查詢語言 原生功能。 此延伸模組可讓您執行進階演算法,例如機器學習、人工智慧、統計和時間序列,作為...https://learn.microsoft.com/zh-hk/kusto/debug-inline-python