VBA有字典结构吗?

VBA有字典结构吗?

VBA有字典结构吗?比如键<>值数组?



墨色风雨
浏览 830回答 3
3回答

天涯尽头无女友

是。设置对MS脚本运行时(“Microsoft脚本运行时”)的引用。根据@Regjo的评论,转到Tools->Reference并勾选“MicrosoftScriptingRuntime”框。使用下面的代码创建一个字典实例:Set&nbsp;dict&nbsp;=&nbsp;CreateObject("Scripting.Dictionary")或Dim&nbsp;dict&nbsp;As&nbsp;New&nbsp;Scripting.Dictionary使用实例:If&nbsp;Not&nbsp;dict.Exists(key)&nbsp;Then&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;dict.Add&nbsp;key,&nbsp;valueEnd&nbsp;If别忘了把字典设为Nothing当你用完它的时候。Set&nbsp;dict&nbsp;=&nbsp;Nothing

至尊宝的传说

VBA有一个集合对象:&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;c&nbsp;As&nbsp;Collection&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;c&nbsp;=&nbsp;New&nbsp;Collection &nbsp;&nbsp;&nbsp;&nbsp;c.Add&nbsp;"Data1",&nbsp;"Key1" &nbsp;&nbsp;&nbsp;&nbsp;c.Add&nbsp;"Data2",&nbsp;"Key2" &nbsp;&nbsp;&nbsp;&nbsp;c.Add&nbsp;"Data3",&nbsp;"Key3" &nbsp;&nbsp;&nbsp;&nbsp;'Insert&nbsp;data&nbsp;via&nbsp;key&nbsp;into&nbsp;cell&nbsp;A1 &nbsp;&nbsp;&nbsp;&nbsp;Range("A1").Value&nbsp;=&nbsp;c.Item("Key2")这个Collection对象使用散列执行基于键的查找,因此它非常快速。您可以使用Contains()函数以检查特定集合是否包含键:Public&nbsp;Function&nbsp;Contains(col&nbsp;As&nbsp;Collection,&nbsp;key&nbsp;As&nbsp;Variant)&nbsp;As&nbsp;Boolean &nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;Error&nbsp;Resume&nbsp;Next &nbsp;&nbsp;&nbsp;&nbsp;col(key)&nbsp;'&nbsp;Just&nbsp;try&nbsp;it.&nbsp;If&nbsp;it&nbsp;fails,&nbsp;Err.Number&nbsp;will&nbsp;be&nbsp;nonzero. &nbsp;&nbsp;&nbsp;&nbsp;Contains&nbsp;=&nbsp;(Err.Number&nbsp;=&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;Err.ClearEnd&nbsp;Function

长风秋雁

VBA没有字典的内部实现,但是从VBA您仍然可以使用MS脚本运行时库中的字典对象。Dim&nbsp;dSet&nbsp;d&nbsp;=&nbsp;CreateObject("Scripting.Dictionary")d.Add&nbsp;"a",&nbsp;"aaa"d.Add&nbsp;"b",&nbsp;"bbb"d.Add&nbsp;"c",&nbsp;"ccc"If&nbsp;d.Exists("c")&nbsp;Then &nbsp;&nbsp;&nbsp;&nbsp;MsgBox&nbsp;d("c")End&nbsp;If
打开App,查看更多内容
随时随地看视频慕课网APP