将类添加到集合

时间:2018-07-31 08:12:22

标签: vba excel-vba

我有一个叫做“运输”的课程:

Public Frequency As Double
Public SourceDest As String

现在,我想读出Excel中的一些单元格,并用该类的这些对象填充一个集合。

收藏:

Dim JobList As New Collection

子:

Dim tmp As New Transport

For i = 1 To 20
    tmp.Frequency = Round(Frequencies(i), 5)
    tmp.SourceDest = Jobs(i)
    JobList.Add tmp
Next

不幸的是,它只将相同的类添加20次,但是我想要不同的类。我该怎么解决?

一般来说,我是VBA的新手,我想要的只是读取表中的两列,将“对”放在一起(例如:{Double, String})在列表{Double, String},{Double, String}, ...中。我以前尝试过类型,但是显然它们不能存储在集合中,所以我选择了类。

1 个答案:

答案 0 :(得分:3)

为了在每次循环时创建该类的另一个对象,必须“告诉” VBA在循环中内部进行创建。
在第4行中,在每个循环中创建一个新的实例传输类

Dim tmp As Transport

For i = 1 To 20
    Set tmp = New Transport
    tmp.Frequency = Round(Frequencies(i), 5)
    tmp.SourceDest = Jobs(i)
    JobList.Add tmp
Next