Я пытаюсь добавлять и удалять людей из расписания, используя коллекции в Excel с VBA.Шаги:
- Создайте 100 человек и назначьте им первую неделю расписания
- Удалите их с этой первой недели и рассчитайте следующую неделю
- Добавьте человекана следующую запланированную неделю.
Часть удаления второго зацикленного поставщика - Ошибка выполнения 13, Ошибка несоответствия типов, аналогичная этому вопросу.Я пробовал решение в предыдущем вопросе с той же ошибкой.Я не уверен, как ссылаться на индексный номер person
, чтобы удалить соответствующий объект person
.
Sub test()
Dim person as New Clsperson 'User defined Object
Dim i as Integer
Dim j as Integer
Dim next_list as Integer
Dim weeks(1 To 52) as New Collection
'Creating 100 people, assigning them first week, and placing on collection
For i = 1 To 100
Set person = New Clsperson
person.first_time = WorksheetFunction.RandBetween(1, 5)
weeks(person.first_time).add person
Next i
For i = 1 To 52
If weeks(i).Count > 0 Then
For j = 1 To weeks(i).Count
Set person= weeks(i).Item(j)
weeks(i).Remove person 'THIS PROVIDES ERROR
next_list = WorksheetFunction.RandBetween(4, 6)
person.next_time = person.first_time+ next_list
If person.next_time> 52 Then
person.next_time = person.next_time - 52
End If
weeks(person.next_time).add person
Next j
End If
Next i
End Sub