搜索
查看: 2259|回复: 0

分类求和VBA

[复制链接]

977

主题

1093

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
15934
发表于 2018-12-31 16:19:24 | 显示全部楼层 |阅读模式
Sub 利用数组提取不重复值()
Dim arr1(1 To 10, 1 To 2)
Set endr = Cells(Rows.Count, "c").End(xlUp) '查找最后B列最后一个非空单元格
arr = Range([b2], endr) '将B列的姓名数据赋值给变量arr形成一个数组
For i = 1 To endr.Row - 1 '循环B列单元格个数的次数
    For j = 1 To UBound(arr1) '找到arr1数组的最大小标,形成循环
        x = arr(i, 1): y = arr1(j, 1) '辅助代码
        If arr(i, 1) = arr1(j, 1) Then
           arr1(j, 2) = arr(i, 2) + arr1(j, 2)
            GoTo 100 'arr数组元素与arr1元素循环对比,如果相等,则跳出内层循环
        End If
    Next j
        k = k + 1 '做个计数器,计算相等重复的元素人数
        arr1(k, 1) = arr(i, 1) '如果循环完后都没有相等的,则将arr1循环的元素赋值给arr1数组
        arr1(k, 2) = arr(i, 2)
100:
Next i
[e2].Resize(k, 2) = arr1 '循环结束后将arr1的结果赋值给单元格区域
End Sub


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

表格智创网

网站简介:表格智创网,是一家以表格设计和技能分享的专业社区,由会计帮帮网投资建设,尽专业,助提高专业技能。

表格智创网欢迎您!

联系我们

  • 工作时间:早上9:00-16:00
  • 客服电话:18668755857
  • 本站网址:www.excelwps.com
  • 淘宝店址:kjbbw.taobao.com

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表