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

判断A列(名称)内容是否重复,若重复则B列(数量)数量相加放入指定单元格里,并只显示第一行隐藏下边重复项。
(判断“单立柱”是否重复若重复数量相加后写入B2中,其他单立柱行隐藏)

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-04
1、定义一个数组,如strName()
2、检索A列,把所有不同的名称存入数组strName中,此数组中包含全部名称,且每个名称只有一个,不重复的。
3、按顺序读取数组中的名称,再检索A列,统计结果,存入B列。
第2个回答  2012-05-04
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本回答被提问者和网友采纳
相似回答