Макрос для удаления дублирующихся строк на листе Excel не работает - PullRequest
0 голосов
/ 08 марта 2020

У меня есть макрос, который является частью большего кода. Он предназначен для удаления дубликатов с листа «Подтвержденные закладки» после того, как на него скопированы все данные. К сожалению, эта часть общего кода не работает. Может кто-нибудь сказать мне, что это останавливает его или как это исправить?

На листе есть столбцы A - X, и мне нужен макрос, чтобы удалить все строки, которые являются дубликатами

Когда я Я выполнил удаление дубликатов вручную, единственные столбцы, которые мне мешали сопоставлять, - это A, B & H, так как при совпадении этих трех строк строка является дубликатом.

Вот код

Sub FinishUP()

Application.DisplayAlerts = False
'Worksheets("Criteria").Delete
Application.DisplayAlerts = True

Worksheets("Confirmed Lays").Activate
    Range("a:x").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24), Header:=xlYes

End Sub

Большое спасибо

1 Ответ

0 голосов
/ 08 марта 2020

Нет необходимости активировать лист (если он не является намеренным) только с диапазоном с данными, найдите последнюю строку

Код:

Public Sub FinishUP()

    Dim targetSheet As Worksheet
    Dim targetRange As Range

    Dim lastRow As Long

    ' Assuming the target sheet is in the same workbook that's calling the macro
    Set targetSheet = ThisWorkbook.Worksheets("Confirmed Lays")

    ' Find last row
    lastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row

    ' Define the range to remove the duplicates from
    Set targetRange = targetSheet.Range("A1:X" & lastRow)

    ' Turn off alerts if you're going to do something that requires it
    Application.DisplayAlerts = False

    targetRange.RemoveDuplicates Columns:=Array(1, 2, 8), Header:=xlYes

    ' DoSomething else?

    Application.DisplayAlerts = True

End Sub

Попробуйте, и дайте мне знать, если это работает.

...