VBA 中的哈希表/关联数组
我似乎找不到解释如何在 VBA 中创建哈希表或关联数组的文档。有可能吗?
您可以链接到一篇文章或者更好地发布代码吗?
I can't seem to find the documentation explaining how to create a hash table or associative array in VBA. Is it even possible?
Can you link to an article or better yet post the code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我认为您正在寻找 Microsoft Scripting Runtime 库中找到的 Dictionary 对象。 (从 VBE 中的“工具...引用”菜单添加对项目的引用。)
它几乎适用于任何可以适合变体的简单值(键不能是数组,并且尝试将它们设为对象不会)没有多大意义。请参阅下面 @Nile 的评论。):
如果您的需求更简单并且只需要字符串键,您也可以使用 VBA Collection 对象。
我不知道是否真的对任何东西进行哈希处理,因此如果您需要类似哈希表的性能,您可能需要进一步挖掘。 (编辑:Scripting.Dictionary 确实使用 内部哈希表。)
I think you are looking for the Dictionary object, found in the Microsoft Scripting Runtime library. (Add a reference to your project from the Tools...References menu in the VBE.)
It pretty much works with any simple value that can fit in a variant (Keys can't be arrays, and trying to make them objects doesn't make much sense. See comment from @Nile below.):
You can also use the VBA Collection object if your needs are simpler and you just want string keys.
I don't know if either actually hashes on anything, so you might want to dig further if you need hashtable-like performance. (EDIT: Scripting.Dictionary does use a hash table internally.)
尝试使用字典对象或集合对象。
http://visualbasic.ittoolbox.com/documents/dictionary-object -vs-collection-object-12196
Try using the Dictionary Object or the Collection Object.
http://visualbasic.ittoolbox.com/documents/dictionary-object-vs-collection-object-12196
过去,当 Collection 或 Dictionary 不可用时,我曾多次使用 Francesco Balena 的 HashTable 类这不是一个完美的选择,我只需要一个哈希表。
I've used Francesco Balena's HashTable class several times in the past when a Collection or Dictionary wasn't a perfect fit and i just needed a HashTable.
开始吧...只需将代码复制到模块中,就可以
在您的 VB(A) 应用程序中使用:
Here we go... just copy the code to a module, it's ready to use
To use in your VB(A) App: