Удалить объект из коллекции - несоответствие типов VBA - PullRequest
1 голос
/ 22 апреля 2019

Я пытаюсь добавлять и удалять людей из расписания, используя коллекции в Excel с VBA.Шаги:

  1. Создайте 100 человек и назначьте им первую неделю расписания
  2. Удалите их с этой первой недели и рассчитайте следующую неделю
  3. Добавьте человекана следующую запланированную неделю.

Часть удаления второго зацикленного поставщика - Ошибка выполнения 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...