(я признаю, что я новичок в vba, поэтому извините, если это глупый вопрос - извините за любые ошибки на английском)
Немного предыстории:
Я несу ответственность за график работы агентов поддержки в моей компании.Например, их лидеры могут отправлять запросы на удаление их из графика.И может быть более одного запроса на агента в тот же день.(расписание на день)
Итак, у меня есть две таблицы: «Запросы» и «Расписание»
На листе запроса: мне нужно проверить столбец для каждого типа запросов (Отпуск, выходной ..) (столбец «E») Если я нахожу этот запрос, мне нужно письмо агента из другой строки (столбец P), найдите это письмо на рабочем листе «Расписание» (столбец «A») и разместите«1» в столбце «AI» (я должен сообщать о количестве каждого запроса)
У меня были проблемы с поиском агента в таблице «Расписание» и размещением «1».и я пробовал другие коды, но это последний, над которым я работал (коллега по работе предложил "Do While" и "Find")
(на данный момент Excel просто падает)
Вот что я пробовал:
If wal.Cells(row, 5) = "Remove from the Schedule - Vacation" Then
'Application.WorksheetFunction.Match(wal.Cells(row, 16).Value, wsc.Range("A:A"), 0).row
wsc.Cells(Application.WorksheetFunction.Match(wal.Cells(row, 16).Value, wsc.Range("A:A"), 0).row, 35) = 1
И
ElseIf Cells(row, 5) = "Remove from the Schedule - Vacation" Then
row = Application.WorksheetFunction.Match(wal.Cells(row, 16), sc.Range("A:A"), 0)
wsc.Cells(row, 35) = 1
Set wal = Worksheets("Alterações")
Set wsc = Worksheets("Schedule")
i = 5
j = 41
Do While wal.Range("E" & i) <> 0
If wal.Range("E" & i) = "Remover do Schedule - Férias" Then
Set agent = wal.Range("P" & i).Find(wsc.Range("A" & j).Value).row
Range("AI" & agent) = 1
End If
Loop