|
本帖最后由 玉阳山人 于 2018-9-8 07:16 编辑
老师们:下边的代码用于计算指定间隔行数的周期为K1【变量】时,对各个周期数据源里符合指定条件的数型进行计数统计的公式:就是按K1指定的间隔行数,对所在对应数据区域内的各个数型出现次数进行统计--当K1为36时,每隔36行进行一次各数型的计数统计;当K1为9时,则每隔9行进行一次各数型的计数统计......以此类推。
Public Function COUNTIFZQ(qy As Range, zq, tj, Optional x = 0)
Application.Volatile
arr = qy
ReDim brr(1 To UBound(arr), 1 To 1) As Variant
j = 0
For i = 1 To UBound(arr)
brr(i, 1) = 0
Next
For i = 1 To UBound(arr)
If arr(i, 1) = "" Then Exit For
If (i Mod 36) = 1 Then j = j + 1
If arr(i, 1) = tj Then
brr(j, 1) = brr(j, 1) + 1
End If
Next
For i = j + x To UBound(arr)
brr(i, 1) = ""
Next
COUNTIFZQ = brr
End Function
按说,当K1里指定的数字发生变化时,计算结果也应该随之改变才对;但实际上,修改K1的数字,I:K列显示的结果却没有发生变化。恳请大神们看看问题出在哪里了,怎么修改?
一夜苦思冥想【因为对VBA不懂】,早上起来,还是没有回帖。死马当作活马医,把If (i Mod 36) = 1 Then j = j + 1 这一句修改为:If (i Mod zq) = 1 Then j = j + 1 没想到问题就这么轻松地解决了!
|
评分
-
1
查看全部评分
-
|