在excel中用VBA写代码,怎样判断某一指定列内容是否重复??

判断A列(名称)内容是否重复,若重复则B列(数量)数量相加放入指定单元格里,并只显示第一行隐藏下边重复项。(判断“单立柱”是否重复若重复数量相加后写入B2中,其他单立柱行... 判断A列(名称)内容是否重复,若重复则B列(数量)数量相加放入指定单元格里,并只显示第一行隐藏下边重复项。
(判断“单立柱”是否重复若重复数量相加后写入B2中,其他单立柱行隐藏)
展开
 我来答
庆年工坊
推荐于2016-02-02 · 知道合伙人互联网行家
庆年工坊
知道合伙人互联网行家
采纳数:4233 获赞数:8928

向TA提问 私信TA
展开全部
Sub s()
    Set d = CreateObject("scripting.dictionary")
    c = InputBox("请输入列标:")
    n = Cells(Rows.Count, 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 If
        End If
    Next
    MsgBox c & "列内容无重复!"
End Sub
Excel开发
2012-05-04 · TA获得超过2915个赞
知道大有可为答主
回答量:1989
采纳率:53%
帮助的人:1017万
展开全部
1、定义一个数组,如strName()
2、检索A列,把所有不同的名称存入数组strName中,此数组中包含全部名称,且每个名称只有一个,不重复的。
3、按顺序读取数组中的名称,再检索A列,统计结果,存入B列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhjf_21st
2012-05-04 · 超过30用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:72.9万
展开全部
Sub test()
Dim r As Long
Dim tempC, tempC1 As Range

r = [A65536].End(xlUp).Row

For Each tempC In Range("A2:A" & r)
tempC.Offset(0, 2).Value = Application.WorksheetFunction.CountIf(Range("A2:A" & r), tempC.Value)

If tempC.Row >= 3 Then
Set tempC1 = Range("A2:A" & (tempC.Row - 1)).Find(tempC.Value, LookIn:=xlValues)
If Not tempC1 Is Nothing Then
tempC1.Offset(0, 1) = tempC1.Offset(0, 1) + tempC.Offset(0, 1)
Rows(tempC.Row).Hidden = True
End If
End If
Next
End Sub
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式