|
楼主 |
发表于 2020-4-5 07:48
|
显示全部楼层
本帖最后由 WYS67 于 2020-4-5 08:08 编辑
次数比较.zip
(34.12 KB, 下载次数: 0)
老师:麻烦您看看,为什么自定义函数CSBJ在sheet1的C、D列可以显示正确的结果;却在sheet2的B列显示#VALUE!错误?
但如果在sheet2的A5里输入27,B5:B1000就可以显示正确的结果了【见上边右图】。难道是数据源里的数字格式不同引发的错误?
怎样才能忽略数据源上边的空白,或数字公式,使代码能够在sheet1的C、D列,或sheet2的B列始终显示正确的计算结果?
代码如下:
Function CSBJ(rng As Range, tj As Variant)
Dim ar(), br(), m, n
ar = rng: ReDim br(1 To UBound(ar), 1 To 1)
For k = UBound(ar) To 1 Step -1
If ar(k, 1) <> "" Then Exit For
br(k, 1) = ""
Next
For i = 1 To k
If ar(i, 1) <> "" Then
n = n + 1: m = m + ar(i, 1)
br(i, 1) = Round(n - m / tj, 1)
Else
br(i, 1) = ""
End If
Next
CSBJ = br
End Function
|
|