gpt4 book ai didi

vba - 在 VBA 中设置集合的 Item 属性

转载 作者:行者123 更新时间:2023-12-04 01:34:04 24 4
gpt4 key购买 nike

我很惊讶这有多么困难,但我想这是一个快速解决方案,所以我会在这里问(搜索谷歌和文档,但都没有帮助)。我有一些代码可以使用键将项目添加到集合中。当我遇到集合中已经存在的键时,我只想通过向当前值添加一个数字来设置它。

这是代码:

If CollectionItemExists(aKey, aColl) Then 'If key already has a value
'add value to existing item
aColl(aKey).Item = aColl(aKey) + someValue
Else
'add a new item to the collection (aka a new key/value pair)
mwTable_ISO_DA.Add someValue, aKey
End If

我第一次将键/值对添加到集合中时,我添加了一个整数作为值。当我再次遇到该键时,我尝试向该值添加另一个整数,但这不起作用。我认为问题不在于任何类型的对象不匹配或类似的东西。我目前得到的错误信息是

Runtime Error 424: Object Required

最佳答案

一旦将值添加到集合中,您便无法对其进行编辑。所以这是不可能的:

aColl.Item(aKey) = aColl.Item(aKey) + someValue

相反,您可以从集合中取出对象,编辑其值,然后将其添加回来。
temp = aColl.Item(aKey)
aColl.Remove aKey
aColl.Add temp + someValue, aKey

这有点乏味,但是将这三行放在一个 Sub 中,就可以了。

当集合用作对象的容器时(与整数、 double 等“原始”变量的容器相反),它们更友好。您不能更改集合中包含的对象引用,但可以操作附加到该引用的对象。

附带说明一下,我认为您误解了与 Item 相关的语法。 .你不能说: aColl(aKey).Item .正确的语法是 aColl.Item(aKey) ,或简称为 aColl(aKey)Item是 Collection 对象的默认方法。但是,我更喜欢使用完整的、明确的形式......

关于vba - 在 VBA 中设置集合的 Item 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562546/

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