gpt4 book ai didi

vba - 在调用 .add() 之前添加项目的字典对象

转载 作者:行者123 更新时间:2023-12-04 13:11:32 25 4
gpt4 key购买 nike

我正在使用 中的字典对象MS 脚本运行时库 存储一系列数组并根据需要对数组单元执行操作。有一个 for 循环来完成创建所有这些条目的过程。我的问题是当使用 .exists属性,它正在返回 True甚至在添加项目之前。

更仔细的调试表明在 for 循环开始时将键添加到字典中,即使没有 .add命令被使用,直到循环结束才会使用。

我尝试了几种不同的配置,但这是一个失败的简单示例:

Dim dTotals As Dictionary
Set dTotals = New Dictionary

dTotals.CompareMode = BinaryCompare

For Each cell In rAppID
If Not dTotals.Exists(cell) Then
Set rAppIDCells = Find_Range(cell, rAppID)
Set rAppIDValues = rAppIDCells.Offset(0, 6)
dAppIDTotal = WorksheetFunction.Sum(rAppIDValues)
dTotals.Add Key:=cell.Value, Item:=dAppIDTotal
End If
Next cell

其中每个单元格都包含一个字符串/唯一 ID。在 If 语句中,代码返回 false,即使在第一次迭代时也是如此。

最佳答案

当我有一个试图返回“丢失”键的项目的 watch 时,我在调试时遇到了这个问题。实际上,当我真正看到 [scriptingdictonaryObject].exists() condtional); 时,进一步沮丧的调试也遇到了同样的问题;我建议因为 watch 而添加“丢失”键。当我移除 watch 并创建一个临时工作表以在运行时将数组复制到其中时,不再添加不需要的键。

关于vba - 在调用 .add() 之前添加项目的字典对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11400898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com