Нужно, удалить повторяющиеся значение в строке. Те, повторяющиеся значения именно в одной строке.
Те. проверка на уникальность должна проходить только по конкретной строке. Т.е. Если найден дубль в A1, то дубль удалить. Было:" GX100, GX101, GX100, GX105, JZX105". Стало: "GX100, GX101, GX105, JZX105" Важно сохранить пунктуацию, т.е. запятые и пробелы.
И таких строк в экселе будет 10000, где нужно проверить и удалить дубли.
Есть мысли у кого нибудь? Помогите пожалуйста.
Здравствуйте. Возник вопрос. Прикрепил эксель.
Нужно, удалить повторяющиеся значение в строке. Те, повторяющиеся значения именно в одной строке.
Те. проверка на уникальность должна проходить только по конкретной строке. Т.е. Если найден дубль в A1, то дубль удалить. Было:" GX100, GX101, GX100, GX105, JZX105". Стало: "GX100, GX101, GX105, JZX105" Важно сохранить пунктуацию, т.е. запятые и пробелы.
И таких строк в экселе будет 10000, где нужно проверить и удалить дубли.
Есть мысли у кого нибудь? Помогите пожалуйста.JIexa_74
Sub remove_dbl() Dim lr&, i&, tmp lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr tmp = Split(Cells(i, 1), ", ") If UBound(tmp) Then With CreateObject("scripting.dictionary") For j = 0 To UBound(tmp) .Item(tmp(j)) = j Next j Cells(i, 1) = Join(.keys, ", ") End With End If Next i End Sub
[/vba]
JIexa_74, здравствуйте, например так: [vba]
Код
Sub remove_dbl() Dim lr&, i&, tmp lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr tmp = Split(Cells(i, 1), ", ") If UBound(tmp) Then With CreateObject("scripting.dictionary") For j = 0 To UBound(tmp) .Item(tmp(j)) = j Next j Cells(i, 1) = Join(.keys, ", ") End With End If Next i End Sub
Мысль очень простая. Транспонируем спецвставкой на другой лист, удаляем дубликаты, очищаем исходный лист, транспонируем спецвставкой. Если грубо, где-то так.
Мысль очень простая. Транспонируем спецвставкой на другой лист, удаляем дубликаты, очищаем исходный лист, транспонируем спецвставкой. Если грубо, где-то так.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.