gpt4 book ai didi

excel - VBA 通过 FOR EACH 循环对象

转载 作者:行者123 更新时间:2023-12-02 23:39:15 25 4
gpt4 key购买 nike

我创建了一个名为category的类,它有3个属性。在我的主类中,我设置了 10 个类型类别的实例。使用 init 函数我初始化这些对象,以便我可以使用它们。现在我想循环访问这些对象。我搜索了2个小时,唯一发现的是唯一的解决方案是创建这些对象的集合。您可以在下面看到我的代码示例:

Dim Kat1 As New category
Dim Kat2 As New category
Dim Kat3 As New category
Dim Kat4 As New category
Dim Kat5 As New category
Dim Kat6 As New category
Dim Kat7 As New category
Dim Kat8 As New category
Dim Kat9 As New category
Dim Kat10 As New category

Dim col As New Collection

Kat1.init "Kat1", 14, 17
Kat2.init "Kat2", 18, 21
Kat3.init "Kat3", 22, 25
Kat4.init "Kat4", 26, 29
Kat5.init "Kat5", 30, 33
Kat6.init "Kat6", 34, 37
Kat7.init "Kat7", 38, 41
Kat8.init "Kat8", 42, 45
Kat9.init "Kat9", 46, 49
Kat10.init "Kat10", 50, 54

col.Add Kat1
col.Add Kat2
col.Add Kat3
col.Add Kat4
col.Add Kat5
col.Add Kat6
col.Add Kat7
col.Add Kat8
col.Add Kat9
col.Add Kat10


For Each col.Item In col
MsgBox (<name of the object>)
Next col.Item

最后一部分似乎不起作用,他停在 col.item 并出现错误:“参数不是可选的”。

我做错了什么?

最佳答案

使用变体来迭代集合,除非它是定义的数据类型(在这种情况下,变体仍然有效)

Dim x As Variant

For Each x In col
MsgBox CStr(x)
Next

代码中的问题是 col.Item 不是一个变量 - 它是一种从集合中访问项目的方法,因此它需要一个参数。您只能使用变量在 For Each 循环中进行迭代

关于excel - VBA 通过 FOR EACH 循环对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34998298/

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