【问题标题】:VBA Extra key/item pairs in scripting.dictionaryscripting.dictionary 中的 VBA 额外键/项对
【发布时间】:2017-04-14 03:21:47
【问题描述】:

这段代码工作了好几天,在字典中循环就好了。循环开始中断,我在字典中有额外的键,我不知道它们来自哪里。

我正在创建一个带有以下内容的 scripting.dictionary:

Dim riskDict As New Scripting.Dictionary

之后,对象为空,如手表所示:

然后我添加我的第一个密钥/项目对:

riskDict.Add "Weight", Array("WP", 0)

在运行这行代码之后,我现在有了这个:

这两个额外的键(第 2 项和第 3 项)是从哪里来的?!这是一个问题,因为稍后在我的代码中我使用:

For Each key In riskDict
    temp = riskDict(key)
    ...
Next key

这个循环中断了,因为它开始引用的是空的键。这似乎直到现在才发生,并且代码已经运行了几天。 (我在代码的其他地方更改了一些东西,但与此完全无关。)

如果我做了什么可笑的事情,或者遗漏了一些明显的事情,请告诉我,谢谢!

【问题讨论】:

  • 您有两个不同的变量riskDictriskGroupDict,对吗?由于您没有共享整个代码,因此不清楚。
  • 你说得对,但我只是抓住了错误的代码块。我解决了我的问题,但感谢您的提醒!
  • 能否请您发布整个For Each 循环代码。请注意,仅引用字典中的某个项目会添加新元素(如果它不存在),而不调用 Add 方法。
  • 我可以,但我觉得这与问题无关。问题发生在循环开始之前。我还需要一点时间才能回到我的办公桌前。
  • riskDict 是全局变量吗?

标签: vba scripting.dictionary


【解决方案1】:

将 riskDict 设为私有或在使用之前清除您的数组。由于缺少关键元素,因此很难说出您在做什么。

Dim riskDict As New Scripting.Dictionary

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2018-02-07
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多