Note: The other languages of the website are Google-translated. Back to English

Как переместить повторяющиеся строки на другой лист в Excel?

Если у вас есть список диапазона данных, который содержит несколько повторяющихся значений в определенном столбце, теперь вы хотите переместить все строки на другой лист на основе повторяющихся ячеек. Как бы вы могли справиться с этой задачей в Excel?

Перемещение целых строк на другой лист на основе повторяющихся ячеек в столбце

Перемещение целых строк на другой лист на основе повторяющихся строк


Перемещение целых строк на другой лист на основе повторяющихся ячеек в столбце

Если в столбце есть повторяющиеся значения, а затем переместите все строки на другой лист, следующий код VBA может оказать вам услугу:

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

Код VBA: перемещение целых строк на другой лист на основе повторяющихся ячеек в столбце:

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, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a desitination cell:", "KuTools For Excel", , , , , , 8)
    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

3, Затем нажмите F5 для запуска этого кода и в появившемся диалоговом окне выберите столбец, содержащий повторяющиеся ячейки, на основе которых вы хотите переместить, см. снимок экрана:

4. Затем нажмите OK, в другом окне подсказки выберите ячейку на другом листе, куда вы хотите поместить перемещенные строки, см. снимок экрана:

5, Затем нажмите OK, строки, которые имеют повторяющиеся значения в столбце A, были перемещены на новый лист, см. снимок экрана:


Перемещение целых строк на другой лист на основе повторяющихся строк

Если вы хотите переместить повторяющиеся строки из диапазона ячеек, следующий код VBA может вам помочь:

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

Код VBA: переместить целые строки на другой лист на основе повторяющихся строк:

Sub CutDuplicates()
'Updateby Extendoffice
    Dim xRgD As Range, xRgS As Range
    Dim I As Long, J As Long, K As Long, KK As Long
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the data range:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a desitination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    KK = 0
    For I = xRgS.Rows.Count To 1 Step -1
        For J = 1 To I - 1
            For K = 1 To xRgS.Columns.Count
                Debug.Print xRgS.Rows(I).Cells(, K).Value
                Debug.Print xRgS.Rows(J).Cells(, K).Value
                If xRgS.Rows(I).Cells(, K).Value <> xRgS.Rows(J).Cells(, K).Value Then Exit For
            Next
            If K = xRgS.Columns.Count + 1 Then
                xRgS.Rows(I).EntireRow.Copy xRgD.Offset(KK, 0).EntireRow
                xRgS.Rows(I).EntireRow.Delete
                KK = KK + 1
            End If
        Next
    Next
End Sub

3, Затем нажмите F5 Чтобы запустить этот код, в появившемся диалоговом окне выберите диапазон данных, в который вы хотите переместить повторяющиеся строки, см. снимок экрана:

4. Нажмите OK кнопку, а затем в другом поле запроса выберите ячейку на новом листе, в которую вы хотите поместить перемещенные строки запроса, см. снимок экрана:

5. Затем нажмите OK кнопку, и теперь повторяющиеся строки были перемещены на другой лист, который вы указали сразу, см. снимок экрана:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (6)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Это именно то, что я искал, спасибо! Я сделал это неправильно в первые несколько раз, а затем он продолжал зависать. Но как только я сделал это точно так же, как на скриншотах (выбрав точный диапазон, скопировав/вставив заголовки на другой лист и выбрав только первое поле под первым заголовком), макросы были мгновенными.
Этот комментарий был сведен к минимуму модератором на сайте
Работает бро!!!!! Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
По какой-то причине. Это сработало один раз, но я не могу запустить его снова. ИТ продолжает тайминг. Какие-нибудь советы?
Этот комментарий был сведен к минимуму модератором на сайте
Hola, que tal,

Tengo una duda con respecto a esta macro; La macro funciona perfectamente y es justo lo que necesito, el problema es quehavualmente necesito utilizarla con tablas de excel en las que hay como mas de 50 mil entradas.

Al utilizarla, Excel неотвратимо рушится и не отвечает.

Hay alguna manera de conseguir Que Esta Macro Funcione en estos casos? O quizas, conseguir alguna формула/комбинация формул en excel que haga lo mismo? Lo comento porque en el caso de las формул, normalmente excel no suele tardar tanto en procesar y lo resuelve mas rapido.

Привет и спасибо.

Рафаэль.
Этот комментарий был сведен к минимуму модератором на сайте
Привет хорошо,

Tenia una pregunta с уважением к этому макросу; Эста макрос эс точного ло дие necesito у funciona perfectamente, pero mi проблема эс дие соло funciona en Grupo де datos дие не Шон muy grandes.

Cuando la aplico sobre un grupo de datos grandes (en mi caso, 50 mil filas), превосходит обязательное коллапса; Он probado muchas cosas pero sigue colapsando.

Hay alguna manera de hacer Que la macro funcione en estos casos? идея с альгуной? Грасиас де Антемано.

Рафаэль.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Рафаэль

Да, как вы сказали, если данные большие, код vba не будет работать идеально. В этом случае вы можете использовать вспомогательный столбец, чтобы сначала отметить повторяющуюся строку, затем использовать функцию фильтра, чтобы отфильтровать повторяющуюся строку, и, наконец, скопировать повторяющуюся строку на другой лист. Пожалуйста, посмотрите демонстрацию ниже:
Чтобы найти повторяющиеся строки, примените эту формулу: =IF(COUNTIFS($A$2:$A2,$A2,$B$2:$B2,$B2,$C$2:$C2,$C2) >1, "Duplicate row", "")
Если вы просто хотите найти повторяющиеся ячейки в одном столбце, примените эту формулу: =ЕСЛИ(СЧЁТЕСЧЁТ($A$2:$A2,$A2) >1, "Повторяющаяся строка", "")
https://www.extendoffice.com/images/stories/comments/comment-skyyang/move-duplicates.gif
Пожалуйста, попробуйте, надеюсь, это поможет вам!
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL