一、案例概述:
前面使用SUMPRODUCT 函数 搭建辅助表来计算同一数值出现次数的统计,本章我们使用vba的方式来实现此功能。
二、案例如下:
(1)源数据:
(2)代码部分:
Sub shshi() '获取分部的起始位置 Dim a, b, c, k, m, n As Integer Dim arr(1 To 100) As Byte Dim brr(1 To 100) As Byte arr(1) = 2 i = 1 '用于定义数组的位置 d = 1 '用于简单的for 赋值计算 k = 1 '用于计算指定区域不同月结号出现的次数 n = 1 '用于给G列定位赋值 '将同一列相同分部的起始位置存放到数组当中 For b = 3 To 100 If Sheet8.Cells(arr(i), 2).Value <> Sheet8.Cells(b, 2).Value Then '用来记住每个分部的单元格行号 a到b-1 i = i + 2 arr(i - 1) = b - 1 arr(i) = b End If Next '获取指定位置不同数值出现的次数且将该值赋值到指定单元格 For m = 2 To 20 Step 2 For d = arr(m - 1) To arr(m) If Sheet8.Cells(arr(m - 1), 1) <> Cells(d, 1) Then k = k + 1 End If If d = arr(m) Then Debug.Print arr(m) Debug.Print k n = n + 1 Sheet8.Cells(n, 7) = k k = 1 '初始化k 的值 End If Next Next 'For Index = 1 To 500 ' Debug.Print Error$(Index) 'next Index End Sub
(3)结果呈现:
三、总结:
执行vba时有个报错,但是不影响结果的呈现,如果有大佬知道如何解决的话,请告知。