Я получаю документ Excel, отправляемый каждую неделю со списком сотрудников, которые не прошли обучение для новой IT-системы, которую мы получаем.Тем не менее, обучение не относится ко всем, поэтому мне нужно привести в порядок, чтобы получить реальные цифры.
Я составил список сотрудников, для которых обучение не относится (Oprydning), и использую следующий код для поиска по одному имени за раз и удаления из другого списка (Datagrundlag).
Private Sub RydOpKnap_Click()
Dim OprydningAntal As Long
Dim DataAntal As Long
Dim Find As String
Worksheets("Datagrundlag - endelig").Visible = True
OprydningsAntal = Worksheets("Oprydning").UsedRange.Rows.Count
DataAntal = Worksheets("Datagrundlag - endelig").UsedRange.Rows.Count
Dim r, s As Long
For r = 2 To OprydningsAntal
Find = Worksheets("Oprydning").Cells(r, 1).Value
For s = 2 To DataAntal
If Worksheets("Datagrundlag - endelig").Cells(s, 3).Value = Find Then
Worksheets("Datagrundlag - endelig").Cells(s, 3).EntireRow.Delete
Exit For
End If
Next s
Next r
Worksheets("Datagrundlag - endelig").Visible = False
ActiveWorkbook.RefreshAll
End Sub
Это занимает вечность, так как список нерелевантных сотрудников в настоящее время составляет 460 различных значений (и будет увеличиваться).Есть ли другой способ сделать это?Я совсем новичок в VBA, но можно ли будет использовать массив?Неужели «командная кнопка», которая инициирует код, делает его медленнее?
Заранее спасибо!
Хайди