Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление дубликатов без сдвига ячеек вверх - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Удаление дубликатов без сдвига ячеек вверх
Julia1663 Дата: Четверг, 20.10.2022, 11:14 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 80% ±

Здравствуйте, уважаемые форумчане. Помогите пожалуйста в решении такой задачи. Есть сводная таблица, в ней дублируются значения. Мне нужно удалить дубликаты так, чтобы ячейки не сдвигались вверх.
Я написала вот такой код
[vba]
Код
Sub Кнопка11_Щелчок()
Range (" F9:I500") . RemoveDuplicates 2
End Sub
[/vba]

Этот макрос всё делает правильно, удаляет только по 2 столбцу, где стоит радиус (пример в файле), но сдвигает их вверх. Помогите пожалуйста:))
К сообщению приложен файл: 1479155.xlsx (5.8 Kb)


Сообщение отредактировал Serge_007 - Четверг, 20.10.2022, 11:36
 
Ответить
СообщениеЗдравствуйте, уважаемые форумчане. Помогите пожалуйста в решении такой задачи. Есть сводная таблица, в ней дублируются значения. Мне нужно удалить дубликаты так, чтобы ячейки не сдвигались вверх.
Я написала вот такой код
[vba]
Код
Sub Кнопка11_Щелчок()
Range (" F9:I500") . RemoveDuplicates 2
End Sub
[/vba]

Этот макрос всё делает правильно, удаляет только по 2 столбцу, где стоит радиус (пример в файле), но сдвигает их вверх. Помогите пожалуйста:))

Автор - Julia1663
Дата добавления - 20.10.2022 в 11:14
msi2102 Дата: Четверг, 20.10.2022, 11:41 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 415
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Ну если нужна проверка только по второму столбцу, то можно так
[vba]
Код
Sub Макрос1()
    Dim rng As Range
    Set Dict = CreateObject("Scripting.Dictionary")
    arr = Range("A2:C5")
    For n = 1 To UBound(arr)
        If Not Dict.Exists(arr(n, 2)) Then
            Dict.Add arr(n, 2), arr(n, 2)
        Else
            If rng Is Nothing Then Set rng = Range(Cells(n + 1, 1), Cells(n + 1, 3)) Else Set rng = Union(rng, Range(Cells(n + 1, 1), Cells(n + 1, 3)))
        End If
    Next
    If Not rng Is Nothing Then rng.Clear
End Sub
[/vba]
А можете из этой ТЕМЫ взять формулу, протянуть вниз, отфильтровать по "0" и удалить значения
К сообщению приложен файл: 1479156.xlsm (18.0 Kb)


Сообщение отредактировал msi2102 - Четверг, 20.10.2022, 13:36
 
Ответить
СообщениеНу если нужна проверка только по второму столбцу, то можно так
[vba]
Код
Sub Макрос1()
    Dim rng As Range
    Set Dict = CreateObject("Scripting.Dictionary")
    arr = Range("A2:C5")
    For n = 1 To UBound(arr)
        If Not Dict.Exists(arr(n, 2)) Then
            Dict.Add arr(n, 2), arr(n, 2)
        Else
            If rng Is Nothing Then Set rng = Range(Cells(n + 1, 1), Cells(n + 1, 3)) Else Set rng = Union(rng, Range(Cells(n + 1, 1), Cells(n + 1, 3)))
        End If
    Next
    If Not rng Is Nothing Then rng.Clear
End Sub
[/vba]
А можете из этой ТЕМЫ взять формулу, протянуть вниз, отфильтровать по "0" и удалить значения

Автор - msi2102
Дата добавления - 20.10.2022 в 11:41
Julia1663 Дата: Четверг, 10.11.2022, 15:23 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 80% ±

msi2102, огромное вам спасибо!
 
Ответить
Сообщениеmsi2102, огромное вам спасибо!

Автор - Julia1663
Дата добавления - 10.11.2022 в 15:23
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!