gpt4 book ai didi

Excel VBA删除重复项保持定位

转载 作者:行者123 更新时间:2023-12-04 21:01:11 25 4
gpt4 key购买 nike

有人可以帮我一些代码来删除跨多列和多行的所有重复条目。任何具有重复值的单元格我都希望为空白,但我不想像删除重复按钮那样删除单元格并将所有行向上移动。我希望代码与条件格式完全相同以突出显示单元格,但我想将值设置为“”。

我正在尝试将录制的宏编辑为:

Columns("I:R").Select
selection.FormatConditions.AddUniqueValues
selection.FormatConditions(1).DupeUnique = xlDuplicate
selection.FormatConditions(1).Value = ""

但我不确定我是否走在正确的轨道上

最佳答案

从底部开始,向顶部工作。取一个十列条件COUNTIFS function的单元格值,同时将每个循环检查的行缩短 1。

Sub clearDupes()
Dim rw As Long

With Worksheets("Sheet1")
If .AutoFilterMode Then .AutoFilterMode = False
With Intersect(.Range("I:R"), .UsedRange)
.Cells.Interior.Pattern = xlNone
For rw = .Rows.Count To 2 Step -1
With .Resize(rw, .Columns.Count) 'if clear both then remove this
If Application.CountIfs(.Columns(1), .Cells(rw, 1), .Columns(2), .Cells(rw, 2), _
.Columns(3), .Cells(rw, 3), .Columns(4), .Cells(rw, 4), _
.Columns(5), .Cells(rw, 5), .Columns(6), .Cells(rw, 6), _
.Columns(7), .Cells(rw, 7), .Columns(8), .Cells(rw, 8), _
.Columns(9), .Cells(rw, 9), .Columns(10), .Cells(rw, 10)) > 1 Then

'test with this
.Rows(rw).Cells.Interior.Color = vbRed
'clear values with this once it has been debugged
'.Rows(rw).Cells.ClearContents
End If
End With 'if clear both then remove this
Next rw
End With
If .AutoFilterMode Then .AutoFilterMode = False
End With
End Sub

我留下了一些代码,只标记潜在的重复项。当您对结果感到满意时,将其更改为实际清除单元格内容的注释代码。

关于Excel VBA删除重复项保持定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com