Такая проблема. около 11000 клиентов. Таблица состоит из ( слева-направо) столбца с именами и столбца и почтой клиентов. Стиль R1C1. Надо выделить клиентов с дублирующемся email и перенести в другой лист ( у некоторых по 5-6 емэйлов, указанных в следующей вправо ячейке). Использовал макрос для переноса строк в другой лист на основе повторяющихся ячеек с помощью VBA (Панель разработчика, Basic).
Сам макрос:
Sub CutDuplicates()
'Updateby Extendoffice
Dim xRgS As Range
Dim xRgD As Range
Dim I As Long, J As Long
On Error Resume Next
Set xRgS = Application.InputBox("Please select the column:", "KuTools For Excel", Selection.Address, , , , ,
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Please select a desitination cell:", "KuTools For Excel", , , , , ,
If xRgD Is Nothing Then Exit Sub
xRows = xRgS.Rows.Count
J = 0
For I = xRows To 1 Step -1
If Application.WorksheetFunction.CountIf(xRgS, xRgS(I)) > 1 Then
xRgS(I).EntireRow.Copy xRgD.Offset(J, 0)
xRgS(I).EntireRow.Delete
J = J + 1
End If
Next
End Sub
Как итог: виснет как тварь, вдобавок переносит не весь указанный мою диапазон, а малый либо средний кусок от указанного (прим. вместо 10500 адресов - всего 12-1000, причем в совершенно рандомном количестве.
Сам файл приложить не могу, т.к. там каталог личных электронных адресов контрагентов.
Сам макрос:
Sub CutDuplicates()
'Updateby Extendoffice
Dim xRgS As Range
Dim xRgD As Range
Dim I As Long, J As Long
On Error Resume Next
Set xRgS = Application.InputBox("Please select the column:", "KuTools For Excel", Selection.Address, , , , ,
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Please select a desitination cell:", "KuTools For Excel", , , , , ,
If xRgD Is Nothing Then Exit Sub
xRows = xRgS.Rows.Count
J = 0
For I = xRows To 1 Step -1
If Application.WorksheetFunction.CountIf(xRgS, xRgS(I)) > 1 Then
xRgS(I).EntireRow.Copy xRgD.Offset(J, 0)
xRgS(I).EntireRow.Delete
J = J + 1
End If
Next
End Sub
Как итог: виснет как тварь, вдобавок переносит не весь указанный мою диапазон, а малый либо средний кусок от указанного (прим. вместо 10500 адресов - всего 12-1000, причем в совершенно рандомном количестве.
Сам файл приложить не могу, т.к. там каталог личных электронных адресов контрагентов.