Не думаю, что это обязательно является причиной вашей ошибки, но в любом случае ее стоит исправить.
Сравните и сопоставьте эти две части вашего кода:
С AddDataPoint
data_points.Add new_data_point
Set new_data_point = Nothing
Здесь мы добавляем объект, на который ссылается временная переменная new_data_point
, в коллекцию. Затем мы устанавливаем new_data_point
в Nothing
, чтобы удалить ссылку на объект, на который он ссылался. Очевидно, что коллекция будет по-прежнему иметь ссылку на этот объект
С Class_Terminate
For Each data_point In data_points 'destruct each data point individually
Set data_point = Nothing
Next data_point
Здесь мы по очереди читаем каждый элемент из коллекции во временную переменную с именем data_point
. Затем мы устанавливаем data_point
в Nothing
, чтобы удалить ссылку на объект, на который он ссылался. (Может быть, не совсем так), очевидно, коллекция будет по-прежнему иметь ссылку на этот объект.
Чтобы удалить каждый объект из коллекции, попробуйте несколько раз удалить первый объект в коллекции, пока коллекция не станет пустой:
Do Until (data_points.Count < 1)
data_points.Remove 1
Loop