Я пытаюсь добавить в коллекцию, которую в конечном итоге добавлю в список.
Случаи происходят из диапазона ячеек из двух столбцов в моей книге.
Я пыталсяиспользуя собственный объектный класс как непосредственно из my для каждого цикла, идентифицируя интересующие ячейки (закомментированные разделы), так и добавляя их в массив и проходя по ним, добавляя их в мою коллекцию.В обоих случаях мои предыдущие добавления перезаписываются следующими.
Private Sub formulas_Change()
Dim i As Integer
Dim cl As Range
Dim mr As Worksheet
Dim itemID As colClass
Set itemID = New colClass
Dim formArr(2, 2) As Variant
Set mr = Worksheets("Monomer Ref")
If cols.Count <> 0 Then
For i = 1 To cols.Count
cols.Remove i
Next i
End If
monCount = 0
ListBox1.Clear
i = 0
For Each cl In Range("MonomerList")
Select Case cl
Case "2-Ethylhexyl acrylate"
formArr(i, 0) = cl
formArr(i, 1) = cl.Offset(0, 1)
i = i + 1
' With itemID
' .name = cl
' .tGlass = cl.Offset(0, 1)
' End With
' monCount = monCount + 1
' pushCollection itemID
Case "Methacrylic acid"
formArr(i, 0) = cl
formArr(i, 1) = cl.Offset(0, 1)
i = i + 1
' With itemID
' .name = cl
' .tGlass = cl.Offset(0, 1)
' End With
' monCount = monCount + 1
' pushCollection itemID
Case "Styrene, atactic"
formArr(i, 0) = cl
formArr(i, 1) = cl.Offset(0, 1)
i = i + 1
' With itemID
' .name = cl
' .tGlass = cl.Offset(0, 1)
' End With
' monCount = monCount + 1
' pushCollection itemID
' For Each itemID In cols
' MsgBox itemID.quants
' Next itemID
End Select
Next cl
For i = 0 To 2
MsgBox i & " " & formArr(i, 0)
With itemID
.name = formArr(i, 0)
.tGlass = formArr(i, 1)
End With
monCount = monCount + 1
pushCollection itemID
Next i
Select Case formulas
Case "-7"
i = 0
For Each itemID In cols
ListBox1.AddItem
ListBox1.List(i, 0) = itemID.name
ListBox1.List(i, 1) = itemID.tGlass
ListBox1.List(i, 1) = 23
i = i + 1
Next itemID
End Select
End Sub
Private Sub pushCollection(itemID As colClass)
cols.Add itemID
End Sub
Когда код запускается, моя коллекция содержит три объекта, все "Стирол, атактический".
Я знаю, что предыдущие объекты были добавлены, и .Count увеличивается на один в каждомдело.Например, «2-этилгексилакрилат» является единственным объектом, тогда есть два объекта, которые являются «метакриловой кислотой», а затем три, которые являются стиролом, о котором я упоминал ранее.
Я вполне уверен, что могу добавитьвсе они напрямую вместо использования класса объекта и подпрограммы, вызываемой для добавления, но я хочу понять, почему это происходит для дальнейшего использования.