我有一个叫做“运输”的课程:
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}, ...
中。我以前尝试过类型,但是显然它们不能存储在集合中,所以我选择了类。
答案 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