EXCEL中怎样用VBA去掉一列数据中的重复数据?

 我来答
hbpaoxiao2
推荐于2016-05-03 · TA获得超过2898个赞
知道大有可为答主
回答量:1962
采纳率:72%
帮助的人:873万
展开全部
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address(0, 0) <> "B1" Then Exit Sub
    Dim dic As Object
    arr = Range([a1], [a65536].End(xlUp))
    Set dic = CreateObject("scripting.dictionary")
    For i = 1 To UBound(arr, 1)
        dic(arr(i, 1)) = ""
    Next
    [a65536].End(xlUp).Offset(-dic.Count + 1, 1).Resize(dic.Count, 1) = Application.Transpose(dic.keys)
End Sub

右键工作表标签》粘贴代码

追问
我试了下还可以,有个问题请修改下。就是有重复的数保留下面的数。我看了现在是去掉了下面的数,保留了上面的数。如:A10,253。A16,253。现在运行VBA是保留了A10,我想保留A16的。
追答
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address(0, 0) <> "B1" Then Exit Sub
    Dim dic As Object
    arr = Range([a1], [a65536].End(xlUp))
    Set dic = CreateObject("scripting.dictionary")
    For i = 1 To UBound(arr, 1)
        If dic.exists(arr(i, 1)) Then dic.Remove (arr(i, 1))'加一行,先删除,再添加
        dic(arr(i, 1)) = ""
    Next
    [a65536].End(xlUp).Offset(-dic.Count + 1, 1).Resize(dic.Count, 1) = Application.Transpose(dic.keys)
End Sub
mjbardag
2015-08-10 · TA获得超过713个赞
知道小有建树答主
回答量:883
采纳率:0%
帮助的人:298万
展开全部
这个不难,方法很多,看下私信
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式