VBA中的字典是使用空键值对创建的

Cam*_*eel 3 excel vba dictionary

创建新词典后:

Dim teams as Dictionary
Set teams = New Dictionary
Run Code Online (Sandbox Code Playgroud)

我注意到它已经包含空键 - 值对(teams.Count返回值1).如何防止这种情况发生或删除?这是正常的行为吗?

Kei*_*ley 12

我有相同的经历并解决了它.

我在字典中为一个值设置了一个Watch表达式.不知何故,这将空字符串/值对保留在字典中(或保持读取它).

删除手表并单步执行代码我现在看到字典不再有空/空项目了.


小智 3

如果您引用的是与我相同的Microsoft Scripting Runtime字典scrrun.dll- Excel 2010。

在此输入图像描述

然后,以下代码在创建后0.Count项目的形式返回,无需任何操作。

Sub SD()
    Dim teams As Dictionary
    Set teams = New Dictionary
    Debug.Print teams.Count
End Sub
Run Code Online (Sandbox Code Playgroud)

我不知道你的字典返回的原因1,但我认为解决方法是简单地使用对象.RemoveAll的方法Dictionary

Sub SD()
    Dim teams As Dictionary
    Set teams = New Dictionary
    teams.RemoveAll
    Debug.Print teams.Count
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 我很感激对我的答案投反对票的人的评论 (2认同)
  • 我不这么认为。请参阅下面我的回答。我相信有些人遇到这种情况而有些人没有遇到这种情况的原因是有问题的人将监视窗口与字典一起使用。当我摘下手表并通过即时窗口检查字典时,我发现它正确地有 0 个项目。 (2认同)