VBA去重复的几种方法

Sub 矩形1_Click()
    i = Range("A65536").End(xlUp).Row
    For s = 1 To i
    For ss = i To s + 1 Step -1
    If Cells(ss, 1) = Cells(s, 1) Then
    Cells(ss, 1).Delete shift:=xlUp
    End If
    Next ss
    Next s
End Sub
Sub 矩形2_Click()
    i = Range("A65536").End(xlUp).Row
    For s = i To 1 Step -1
    If Application.WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(s, 1)), Cells(s, 1)) > 1 Then
    Cells(s, 1).Delete shift:=xlUp
    End If
    Next
End Sub
Sub 矩形3_Click()
    i = Range("A65536").End(xlUp).Row
    Dim dic As Object, ii&, arr, ra
    Set dic = CreateObject("Scripting.Dictionary")
    arr = Range("a1:a" & i)
    For ii = 1 To UBound(arr)
        ra = dic(arr(ii, 1))
    Next
    Range("a:a").ClearContents
    Range("a1").Resize(dic.Count, 1) = Application.Transpose(dic.Keys)
End Sub
Sub 矩形4_Click()
Columns(1).RemoveDuplicates 1
End Sub

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个使用 VBA 去除重复字段的代码: ``` Sub RemoveDuplicates() Dim lRow As Long Dim lCol As Long Dim i As Long Dim j As Long Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") With ActiveSheet lRow = .Cells(.Rows.Count, "A").End(xlUp).Row lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column For i = lRow To 2 Step -1 dict.RemoveAll For j = 1 To lCol If dict.Exists(.Cells(i, j).Value) Then .Rows(i).Delete Exit For Else dict.Add .Cells(i, j).Value, 0 End If Next j Next i End With End Sub ``` 这段代码假设重复字段在表格中是完全相同的。如果你希望仅去除特定列的重复字段,可以在代码中修改 `j` 的范围。 ### 回答2: Excel VBA 有多种方法可以去除重复字段,以下是一种常用的方法: 首先,打开VBA编辑器(按下ALT+F11),在工程资源管理器中找到要操作的工作簿,双击打开,并创建一个新的模块。 在新的模块中,我们可以使用RemoveDuplicates方法来去除重复字段。下面是一个示例代码: Sub RemoveDuplicates() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") '设置要操作的工作表 With ws .Columns("A").RemoveDuplicates Columns:=1, Header:=xlYes 'A列为要去除重复的列,xlYes代表有列标题 End With End Sub 在这个示例代码中,我们设置了要操作的工作表为"Sheet1",并将要去除重复的列设置为A列。你可以根据需要更改这些值。 然后,运行这个Sub过程,它将会自动去除指定列中的重复字段。 需要注意的是,如果你需要去除多个列的重复字段,只需要在RemoveDuplicates方法的Columns参数中指定多个列即可,例如:Columns:=Array(1, 2, 3)。 这是一个简单的示例代码,你可以根据实际需求进行适当修改。希望对你有所帮助! ### 回答3: 可以使用Excel VBA中的RemoveDuplicates方法来去除重复字段。 首先,创建一个新的子过程(Procedure),并将其命名为RemoveDuplicates,以便我们可以在需要的时候调用它。代码如下: ```vba Sub RemoveDuplicates() Dim ws As Worksheet Set ws = ActiveSheet '或者根据需要指定要处理的工作表 With ws .UsedRange.RemoveDuplicates Columns:=Array(1) '这里的1代表第一列,根据需要可以修改为其他列号 End With End Sub ``` 在上述代码中,我们首先声明了一个Worksheet对象变量ws,然后使用Set语句将其设置为当前活动工作表,您可以根据需要修改为特定的工作表。接着,在With语句块中,我们使用UsedRange属性指定要处理的字段范围,然后使用RemoveDuplicates方法,将要处理的列指定为数组(这里使用的是第一列)。最后,使用End With结束With语句块。 通过调用RemoveDuplicates子过程,您可以在Excel VBA中删除指定的列中的重复字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪情云天

您的鼓励就是创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值