Удалить дубликаты значения , без смещения (выгрузки в начало .) ? - VB
Формулировка задачи:
Уважаемые ,вот макрос , он удаляет значения без смещения по строкам, недубликатов . В рамка строк он выдерживает диапазон , а вот в рамках столбцов проходит до конца листа . Как его немножко изменить , что-бы он действовал строго в рамках диапазона ?
Sub Main333()
Dim x As Range, y As New collection, i As Long, a(), s As String
a = [A1:C100].Value: Application.ScreenUpdating = False
For i = 1 To UBound(a, 1)
s = Join(Application.Index(a, i, 0), "|")
On Error Resume Next: y.Add s, s
If Err <> 0 Then
If x Is Nothing Then Set x = Rows(i) Else Set x = Union(x, Rows(i))
On Error GoTo 0
End If: Next: x.Clear
End Sub
Sub Main333()
Dim x As Range, y As New collection, i As Long, a(), s As String
a = [A1:C100].Value: Application.ScreenUpdating = False
For i = 1 To UBound(a, 1)
s = Join(Application.Index(a, i, 0), "|")
On Error Resume Next: y.Add s, s
If Err <> 0 Then
If x Is Nothing Then Set x = Rows(i) Else Set x = Union(x, Rows(i))
On Error GoTo 0
End If: Next: x.Clear
End Sub
Решение задачи: «Удалить дубликаты значения , без смещения (выгрузки в начало .) ?»
textual
Листинг программы
<font color="blue">Sub</font> Main333() <font color="blue">Dim</font> x <font color="blue">As</font> Range, y <font color="blue">As</font> <font color="blue">New</font> collection, i <font color="blue">As</font> <font color="blue">Long</font>, a(), s <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> xx <font color="blue">As</font> Range <font color="blue">Set</font> xx= [A1:C100] <font color="#00AA00">'a = [A1:C100].Value: Application.ScreenUpdating = False</font> a = xx.Value: Application.ScreenUpdating = False <font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> UBound(a, <font color="darkblue"><b>1</b></font>) s = Join(Application.Index(a, i, <font color="darkblue"><b>0</b></font>), <font color="teal">"|"</font>) <font color="blue">On</font> <font color="blue">Error</font> <font color="blue">Resume</font> <font color="blue">Next</font>: y.Add s, s <font color="blue">If</font> Err <> <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> <font color="#00AA00">'If x Is Nothing Then Set x = Rows(i) Else Set x = Union(x, Rows(i))</font> <font color="blue">If</font> x <font color="blue">Is</font> <font color="blue">Nothing</font> <font color="blue">Then</font> <font color="blue">Set</font> x = xx.Rows(i) <font color="blue">Else</font> <font color="blue">Set</font> x = Union(x, xx.Rows(i)) <font color="blue">On</font> <font color="blue">Error</font> <font color="blue">GoTo</font> <font color="darkblue"><b>0</b></font> <font color="blue">End</font> <font color="blue">If</font>: <font color="blue">Next</font>: x.Clear <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д