Попытка удалить дубликаты, не портя границу - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь удалить дубликаты, не портя границы.У меня уже написан какой-то код, но когда я его пробую, он либо портит границу, либо очищает данные за пределы диапазона.

Я просто хочу сравнить список чертежей, который у меня есть, не выходя иззаданный диапазон или испорченная граница

Sub DelDupl ()

Dim rng As Range
Set rng = Range("A13:F305")

Range("A13").CurrentRegion.RemoveDuplicates Columns:=Array(3, 4), Header:=xlYes


With rng.Borders
    .LineStyle = xlContinuous
    .Color = vbBlack
    .Weight = xlThin
End With
End Sub

Я хотел бы сравнить столбец идентификатора документа со столбцом листа, если есть совпадение, затем удалитьсоответствующая строка.

Я приложил картинку ниже.Я просто хочу сравнить данные, начиная со строки 14. Когда я запускаю свой код, он также удаляет текст «Цифровой файл», показанный в строке 11. enter image description here

Ответы [ 2 ]

1 голос
/ 05 апреля 2019
Sub Program1()

Dim wb As Workbook
Dim ws As Worksheet
Dim Rng As Range

Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet1")

With Sheets("Sheet1")
  Lastrow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
End With

' for B column and C Column
Set Rng = ws.Range(ws.Cells(14, 2), ws.Cells(Lastrow, 3))
Rng.RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo

End Sub
0 голосов
/ 05 апреля 2019

Я не уверен, почему ваши RemoveDuplicates основаны на столбцах C и D, но вам нужно избавиться от CurrentRegion и определить диапазон.

With Range(Cells(13, "A"), Cells(rows.Count, "A").end(xlup))
    .resize(.rows.count, 6).RemoveDuplicates Columns:=Array(3, 4), Header:=xlYes
End With

'depending on what is below row 37, the range might have to be defined this way (although the former is preferable)
With Range(Cells(13, "A"), Cells(13, "A").end(xldown))
    .resize(.rows.count, 6).RemoveDuplicates Columns:=Array(3, 4), Header:=xlYes
End With

CurrentRegion - это «остров данных», который простирается ввсе направления, пока он не встретит полностью пустой столбец, полностью пустую строку или экстенты листа.«Цифровой остров», расположенный вокруг A13, простирается как минимум на целую строку в вашем изображении.

CurrentRegion можно проверить, выбрав ячейку и нажав Ctrl + A один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...