Я хочу сделать макрос VBA, который ищет через столбец A и каждый раз, когда он находит 2 ячейки в этом столбце, которые являются одинаковыми (и смежными!), Чтобы удалить один из 2 и сдвинуть вверх. Я хочу, чтобы он оставался в столбце A, и каждый раз, когда дубликат приходил рядом, чтобы удалить его. Довольно много у меня есть лист первенствовать, что чередуется информация, как так:Удалить соседние ячейки, если они дублируются?
B
B
Но я часто била коряги как этот
A
B
B
B
A
Эти 2 B являются то, что я хочу, чтобы автоматически ясно и переложить клетки вверх, но я не уверен, как идти об этом , Любые предложения?
EDIT: Я решил свой собственный вопрос. Ответ ниже, но здесь он снова поможет другим, кто, возможно, столкнулся с проблемой, как и я.
Nevermind people. Я получил это. Я записал макрос, который использует фильтры и простую формулу. В столбце B я помещаю это в: = IF (a1 = a2, «STOP», «»). Затем я перетащил его, чтобы скопировать. Затем я отфильтровал столбец B, чтобы показать только ячейки «STOP». Затем я очистил эти клетки. Затем я отфильтровал столбец B, чтобы показать все. Затем я перешел в Home> Find and Select> Special> Select Blanks. Затем я удалил и сдвинул ячейки вверх по выбранным пробелам. Затем я перетащил формулу столбца B вниз, чтобы создать рабочий цикл для моего записанного макроса. Вот что запись закончилась выглядит как:
Sub DUPES()
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=R[1]C[-1],""DLT"","""")"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault
Range("J2:J1000").Select
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10, Criteria1:="<>"
Range("I11:J11").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A11").Select
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10
ActiveWindow.SmallScroll Down:=-42
Columns("I:I").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault
Range("J2:J1000").Select
Range("I2").Select
End Sub
Я попытался вручную записи макроса, чтобы удалить дубликаты, рассказывая ему выйти к югу, когда он достиг «другого» переменной. – Forbidden
Если sel.Offset (i) .Value = prev Затем sel.Offset (i) .EntireRow.Удалить Я также попытался возиться со смещениями, но я действительно нехорошо делаю такое. – Forbidden