|
本帖最后由 WYS67 于 2018-9-3 11:45 编辑
各位老师:自定义函数BCFGS()是用于统计:指定区域内各单元格指定位置数据的不重复个数。如果把代码存放在本表的模块里,计算结果全部正确;如果是做成加载宏 .xlam ,在本表里调用,大部分计算结果就会显示#VALUE!错误,下面是代码:
Function BCFGS(Rng As Range, Optional x, Optional y) As Long
Dim d As Object, i As Long, arr
arr = Rng
If IsMissing(x) Then
x = 1
y = 99
End If
Set d = CreateObject("Scripting.Dictionary")
On Error Resume Next
For i = 1 To UBound(arr)
If arr(i, 1) <> "" Then
d(Mid(arr(i, 1), x, y)) = ""
End If
Next
BCFGS = d.Count
Set d = Nothing
End Function
详细情况请看附件:
自定义函数加载宏后部分计算结果出现#VALUE!错误.zip
(15.04 KB, 下载次数: 11)
调用加载宏里的BCFGS写公式,只有在省略后两个参数时=BCFGS(C6:C20),才能显示正确的计算结果;一旦加上后两个参数 =BCFGS(C6:C20,1,1),计算结果就会显示#VALUE!错误。【后两个参数与内置函数MID(C6:C20,1,1)的作用相同】怎么解决?
难道是调用了MID()内置函数的自定义函数无法加载宏?
|
|