2016-07-25 3 views
0

Я пытаюсь удалить дубликаты из таблицы в Excel, у меня есть фрагмент кода, который удаляет дубликаты без каких-либо проблем, мне интересно, могу ли я заставить его запрашивать окно сообщения когда найден дубликат, говорящий что-то вроде строк «Эта запись является дубликатом записи» Любые предложения? Это то, что я до сих пор:Excel vba MsgBox для отображения сообщения при обнаружении дубликата

Sub AccessTransfer() 
    Range("A1:F1").Select 
    Selection.Copy 
    Sheets("Sheet2").Select 

    ActiveSheet.Paste 
    ActiveCell.Offset(0, 6).Value = "Oven" 

    Range("A65536").End(xlUp).Offset(1, 0).Select 
    Call GoDupe 
    Sheets("Sheet1").Select 

    Application.CutCopyMode = False 

End Sub 



Sub GoDupe() 

    Cells.RemoveDuplicates Columns:=Array(1), Header:=xlNo 
    Range("A65536").End(xlUp).Offset(1, 0).Select 
End Sub 
+3

Вы должны были бы цикл, чтобы определить простофили и записать их в строку. Используя то, что у вас есть, нет способа идентифицировать, которые на самом деле являются обманами и являются уникальными. – Kyle

ответ

1

Вместо того, чтобы циклически, выявления и побуждая каждого дубликата, вы могли бы просто выделить все дубликаты и предложит пользователю один раз. Ваш GoDupe() югу может выглядеть примерно так:

Sub GoDupe() 

Cells.FormatConditions.AddUniqueValues 
With Cells.FormatConditions(Cells.FormatConditions.Count) 
    .DupeUnique = xlDuplicate 
    .Interior.Color = RGB(255, 0, 0) 
End With 
If MsgBox("Red highlighted cells are duplicated. OK to remove duplicates?", vbOKCancel) = vbOK Then 
    Cells.RemoveDuplicates Columns:=Array(1), Header:=xlNo 
    Range("A65536").End(xlUp).Offset(1, 0).Select 
End If 
Cells.FormatConditions(Cells.FormatConditions.Count).Delete 

End Sub

+0

Просто одно, я хочу, чтобы первый столбец (столбец A) был выделен и удален для дубликатов, все остальные столбцы имеют повторяющиеся значения, и это нормально, есть ли что-то сделать? –

+0

Затем вы должны вызвать функцию RemoveDuplicates из определенного диапазона, а не просто «Ячейки». Например. 'Range (" $ A: $ A "). RemoveDuplicates Columns: = Array (1), Header: = xlNo' – hughg

Смежные вопросы