Excel只删除唯一的单元格

我一直在努力提出一个解决scheme,删除所有在我的Excel表单中唯一的单元格。

我有一个像这样的Excel表格:

cat dog shrimp donkey dog human wale wale bear dog donkey shrimp human wale 

我想现在删除所有单元格中的所有值(所以这里将删除猫和熊),同时保持所有行的顺序等完好无损。 我也有几行是完全空的(但我不能删除)。

我已经尝试了下面的macros,但这是我的第一个VBAmacros(我知道这是愚蠢的低效:))由于某种原因,它不会删除任何东西,而我看不到逻辑错误。

码:

 Sub doit() Dim rng As Range Dim rngtoCheck As Range Dim cell As Range Dim isCellUnique As Boolean Dim cellToCheck As Range Set rng = Range("A1:Z20") Set rngtoCheck = Range("A1:Z20") For Each cell In rng isCellUnique = True For Each cellToCheck In rngtoCheck If cell.Value = cellToCheck.Value AND cell.row <> cellToCheck.row Then isCellUnique = False End If Next cellToCheck If isCellUnique = True Then cell.ClearContents End If Next cell End Sub 

我的想法是,我遍历整个范围,并检查每个单元格中的其他单元格是否具有相同的值,但不在同一行。 如果两者都检查我保持价值,否则我清除细胞。

我究竟做错了什么?

您可以使用Application.WorksheetFunction.CountIf来检查单元格是否重复多次?

这是你正在尝试?

尝试和testing

 Sub doit() Dim rng As Range, aCell As Range '~~> Change this to the relevant sheet Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:Z20") For Each aCell In rng If Not Len(Trim(aCell.Value)) = 0 Then '~~> Check if word occurs just once If Application.WorksheetFunction.CountIf(rng, aCell.Value) = 1 Then MsgBox aCell.Value & " is unique" ' '~~> Do what you want here ' End If End If Next aCell End Sub