Я работаю в контакт-центре, создавая инструменты Excel для многих областей.Один из них распределяет людей через все службы с учетом их рабочего времени и свободного времени.
У них есть 2 вида свободного времени, по одному каждый час в течение 5 минут, а другой - от 10 до 30 минут (в зависимости от того, какони работают много часов), которые не могут начаться до 2 первых часов или после последних полутора часов.
Получил код, работающий до сих пор, но затем они начали работать в 2 службах в один и тот же день,Мой предыдущий макрос разделяет одного и того же работника на 2 строки, по одному для каждого сервиса со своим schelude.Я не могу изменить это, потому что файл намного больше, чем эта часть, и от этого зависят несколько других функций.
, поэтому моя проблема в том, что мой код работает строка за строкой, и они даже не один за другим, поэтому первыйсвободное время будет работать нормально, но вычисление 2 первых часов, последнего часа и половины и общего рабочего времени завершится неудачей.
Часть кода, которая делает это здесь:
For i = 2 To UBound(arrAgentes)
If Not DictKPI.Exists(arrAgentes(i, 1) & arrAgentes(i, 3)) Or IsEmpty(DictKPI(arrAgentes(i, 1) & arrAgentes(i, 3))) Then GoTo Siguiente
If arrAgentes(i, 6) = "Intensivo" Then
If arrAgentes(i, 4) <> "BUCARAMANGA" Then Call RepartePVDIntensivo(i)
If arrAgentes(i, 11) <> vbNullString Then Call ReparteDescansosIntensivo(i)
ElseIf arrAgentes(i, 6) = "Partido" Then
If arrAgentes(i, 4) <> "BUCARAMANGA" Then Call RepartePVDPartido(i)
If arrAgentes(i, 11) <> vbNullString Or arrAgentes(i, 12) <> vbNullString Then Call ReparteDescansosPartido(i)
End If
Siguiente:
Next i
Он будет работать в зависимости от того, будет ли их схема без обеда, то есть с 8:00 до 16:00 или с обедом с 10:00 до 14:00 и с 15:00 до 19:00.
*1013* "Intensivo" означает нетВремя обеда "Партидо" означает время обеда.Мы также разделяем их по странам (действующие законы о свободном времени и все такое).
Может ли кто-нибудь помочь мне найти ключ к решению моей проблемы?Макрос будет запускаться строка за строкой, и, возможно, через 300 строк он найдет того же парня в тот же день, но в другой schelude, потому что у него есть 2 сервиса в тот день.
Вот так выглядит лист в началекод:

У этого работника время работы с 15:30 до 00:00, но служба, в которой он работает во второй половине дня, закрывается в 2200, а затем переходит к другому.Макрос даст ему только 6,5 часа в первом ряду и 2 часа в последнем ряду ... его свободное время будет 20 и 0, но на самом деле он работает в течение 8,5 часов, что означает в общей сложности 30 минут.
Любая помощь будет оценена.