Dzwebs.Net

撰写电脑技术杂文十余年

使用VBA统计出重复的值

Admin | 2009-9-19 0:39:30 | 被阅次数 | 14526

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  下面我们来学习一个实例,如何统计出Excel重复的值,并且,将重复的值的后列,添加到头一个重复值的列中!

  如下图,C列是VIN码,在此表中,存在多个重复的数据,现在,我们来查找一下,存在重复值的第一个值,在其后面,即右边的列中,显示VIN码对应的行驶里程。

  首先,如下图一样,在Excel中添加一个按钮控件,最后,给按钮设置VBA代码,即可完成!

  如上图,当点击“开始找”按钮时,就将存在重复的VIN码的第一个值,在其后面的列中,分别显示行驶的里程。

  为方便大家学习,下面,贴出VBA源代码:

  ①通用代码

  Dim MyBoot As Integer
  Dim MyBoots As Integer
  Dim Cfz As Integer

  ②按钮的代码

  MyBoot = 0
ReDim iArray(0)
For i = 2 To 1521
    Cfz = 0
    If (Application.WorksheetFunction.CountIf(Sheets(2).Range("C2:C1521"), Worksheets(2).Cells(i, 3)) > 1) Then
        For j = 0 To UBound(iArray)
            If (Worksheets(2).Cells(i, 3).Value = iArray(j)) Then
                Cfz = Cfz + 1
            End If
        Next
        If (Cfz > 0) Then
        Else
            MyBoot = MyBoot + 1
            ReDim Preserve iArray(0 + MyBoot)
            iArray(0 + MyBoot) = Worksheets(2).Cells(i, 3).Value
        End If
    End If
Next
Dim h As Integer
For k = 0 To UBound(iArray)
    Worksheets(2).Cells(k + 2, 6).Value = iArray(k)
    MyBoots = 0
    ReDim iArrays(0)
    h = 0
    For m = 2 To 1521
        If (iArray(k) = Worksheets(2).Cells(m, 3)) Then
            MyBoots = MyBoots + 1
            ReDim Preserve iArrays(0 + MyBoots)
            iArrays(0 + MyBoots) = Worksheets(2).Cells(m, 4).Value
        End If
    Next
    For mm = 0 To UBound(iArrays)
        h = h + 1
        Worksheets(2).Cells(k + 2, h + 6).Value = iArrays(mm)
    Next
Next

  ③代码说明

  其中,1521代表该表中的行数。


该杂文来自: Excel杂文

上一篇:Excel记录表格被打印次数的VBA代码

下一篇:在局域网中应用共享工作薄的经验总结

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计