excel vba判断所选范围列是否重复与不重复二种代码

(不重复删除)代码1:所选列全部没有重复时,删除该列全部内容(重复时不做删除动作)
(重复保留1)代码1:A首先判断所选列全部没有重复时,删除该列全部内容
B然后判断选列全有重复时,删除重复上面的(只保留重复1个和它下面1个::::如果它下面没有的话就不须要保留)

Sub 删除重复()
    Dim arr, i&, j&, n&
    Dim d, k, t, x
    For i = 11 To 65
    Set d = CreateObject("Scripting.Dictionary")
    n = Cells(65536, i).End(3).Row
    If n > 15 Then
        arr = Cells(n - 15, i).Resize(5)
        For j = 1 To 5
            If arr(j, 1) <> "" Then d(arr(j, 1)) = d(arr(j, 1)) & j & ","
        Next
        x = d.keys: t = d.items: k = True
        For j = 0 To UBound(x)
        t(j) = Left(t(j), Len(t(j)) - 1)
        If InStr(t(j), ",") Then
            k = False
            Exit For
        End If
        Next
        If k Then Cells(n - 15, i).Resize(5).Clear
    End If
    Set d = Nothing
    Next
End Sub
Sub 重复保留1()
    Dim arr, i&, j&, n&
    Dim d, k, t, x
    For i = 11 To 65
    Set d = CreateObject("Scripting.Dictionary")
    n = Cells(65536, i).End(3).Row
    If n > 15 Then
        arr = Cells(n - 15, i).Resize(5)
        For j = 1 To 5
            If arr(j, 1) <> "" Then d(arr(j, 1)) = d(arr(j, 1)) & j & ","
        Next
        x = d.keys: t = d.items
        For j = 0 To UBound(x)
        t(j) = Left(t(j), Len(t(j)) - 1)
        If InStr(t(j), ",") Then
            aa = Split(t(j), ",")
            For k = 0 To UBound(aa) - 1
            Cells(aa(k) + n - 16, i).Clear
            Next
        Else
            Cells(CInt(t(j)) + n - 16, i).Clear
        End If
        Next
    End If
    Set d = Nothing
    Next
End Sub追问

重复保留1
A:5个完全不相同时全删除 已对
B:重复的/,删除上面重复的及它上面的
K11=5
K12=6
K13=5
K14=6
K15=9
从下往上找K12最近重复/删除K12和它上面的内容(K11内容)

温馨提示:内容为网友见解,仅供参考
无其他回答

excel vba判断所选范围列是否重复与不重复二种代码
Sub 删除重复() Dim arr, i&, j&, n& Dim d, k, t, x For i = 11 To 65 Set d = CreateObject("Scripting.Dictionary") n = Cells(65536, i).End(3).Row If n > 15 Then arr = Cells(n - 15, i).Resize(5) For j = 1 To 5 If arr(j...

EXCEL有好几列,如何查询是否有重复列?不是查找重复单元格!
可以写vba代码,逻辑是这样的:第一列做一个筛选排序,假设降序 降序好的这一列复制粘贴到一个新建的sheet中 第二列继续上面两个步骤 上面都做好后,通过for循环,依次sheet中的第一列和第二列每一行对比,第一列和第三列每一行对比,完了第二列和第三列,第二列和第四列,一直循环下去,把结果...

在excel中用VBA写代码,怎样判断某一指定列内容是否重复??
c).End(3).Row For i = 1 To n a = Cells(i, c).Text If a <> "" Then If d.exists(a) Then MsgBox c & "列内容有重复!" Exit Sub Else d.Add a, "" End

Excel 请问用vba如何重复及不重复值
【取不重复值】:Sub 字典比较提取不重复值() Set dic = CreateObject("scripting.dictionary") For i = 2 To [a300].End(3).Row dic(Cells(i, 1).Value) = "" Next i For i = 2 To [b300].End(3).Row dic.Remove (Cells(i, 2).Value) Next i Range...

利用excelVBA删除工作表中的重复行
如果要在Excel中用VBA的方法以根据某列内容删除重复的行,即当某列有重复数据时仅保留一行,可以用下面的VBA代码。假如以A列为参考,工作表的第一行为标题行,数据从第二行开始。方法一:用工作表函数CountIf判断该行是否重复 Sub 删除重复行1()Dim i As Long Application.ScreenUpdating = False For...

VBA自动识别且判断Excel表格最后两行的内容是否相同,相同的话删除最后一...
你可以用宏录制的方法,就是点录制宏,然后你自己操作一下,结束后点击关闭保存。excel会把你操作的过程变成代码,你把代码copy下来用就可以了。

Excel vba如何使用宏实现:判断A列数据是否重复,如果重复,在B列显示重 ...
如果用代码:Dim myBoo As Boolean myBoo = True Dim I As Long, C As Long C = Application.WorksheetFunction.CountA(Range("A:A"))For I = 1 To C If Range("B" & I).Value <> Application.WorksheetFunction.VLookup(Range("A" & I).Value, Range("A:B"), 2, 0) Then myBoo...

excel vba判断同行的内容是否重复
以A1:E4区域为例,代码如下:Sub tst()Dim i%, j%, k% For i = 1 To 4 For j = 0 To 4 For k = 0 To 4 If Cells(i, 1).Offset(0, j).Value = Cells(i, 1).Offset(0, k).Value And j <> k Then Cells(i, 1).Interior.ColorIndex = i + 10 Next ...

excel vba判断单元格内容是否有重复
1、是查找单列重复还是整个区域重复 2、提取内容时重复的算一个还是有几个提几个,比如J4J5都是x,J3是Ax还是Axx

excel宏,判断两个单元格内容一至的VBA怎么写?
以下为代码及详解:Sub main()Rng = Range("B" & Selection.Row)'定义变量rng为B列选中区域所在行If Rng.Value <> Rng.Offset(-1, 0).Value Then'判断这个单元格的值与它上一个单元格的值是否一致MsgBox "不相同!"'如果不一致,则弹出提示框“不相同”Exit Sub'退出程序ElseMsgBox "相同!"'如果一致,则...

相似回答
大家正在搜