2016-10-14 2 views
0

Когда я вручную удалены дубликаты из диапазона (B35: F99), я получил ошибку говоря у меня есть объединить ячейки в строке 32 и 33.Удалить дубликаты в Excel 2013

Как я могу байпас, что с помощью VBA? У меня есть несколько листов для удаления дубликатов.

Sub RemoveDuplicate() 
    Range("B4:F99").RemoveDuplicates Column:=Array(1,2) 
End Sub 

У меня этот код онлайн, и он не работает.

+0

Прежде чем запускать код, вам необходимо разблокировать ячейки. –

+0

Правильно, он удаляет дубликаты после того, как я разблокирую ячейки, однако он не удаляет повторяющиеся значения, а формулу, как я могу удалить дубликат на основе значения? –

ответ

0

Самый простой вариант - просто убедиться, что все ячейки не подключены, прежде чем запускать метод RemoveDuplicates.

Sub RemoveDuplicate() 
    with range("B4:F99") 
     .unmerge 
     .removeduplicates column:=array(1,2) 
    end with 
End sub 

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

+0

Привет, Werrf, Спасибо, что ответили. У меня есть другой вопрос: похоже, он не удаляет значения дубликатов, а формулу, которая запускает ячейки. Как это изменить? Спасибо огромное! –

+0

@ Cassie.L вам нужно будет преобразовать все формулы в их значения. Это будет постоянно удалять формулы. Добавьте '.Value = .Value' в' .unmerge' –

+0

@Werrf, он изменил его на значение, но я получил сообщение об ошибке «Ошибка компиляции: Именованный аргумент не найден» и выделен в столбце: = –

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