Excel 什么';这首歌怎么了?

Excel 什么';这首歌怎么了?,excel,vba,Excel,Vba,假设A1、A2和A3的值分别为1、2和3。我编写了以下代码 function uboundout(reference) uboundout=ubound(reference) end function 我把=uboundout(A1:A3)放在B1中,期望3,但是Excel显示#值。尝试工作表功能时没有问题。计数而不是ubound。这里怎么了?感谢您的阅读。将参考声明为范围,并使用值: Function uboundout(reference As Range) If reference.Co

假设
A1
A2
A3
的值分别为
1
2
3
。我编写了以下代码

function uboundout(reference)
uboundout=ubound(reference)
end function

我把
=uboundout(A1:A3)
放在B1中,期望
3
,但是Excel显示
#值。尝试
工作表功能时没有问题。计数
而不是
ubound
。这里怎么了?感谢您的阅读。

参考
声明为
范围
,并使用

Function uboundout(reference As Range)
If reference.CountLarge = 1 Then
    uboundout = 1
    Exit Function
End If
uboundout = UBound(reference.Value)
End Function

引用
声明为
范围
并使用

Function uboundout(reference As Range)
If reference.CountLarge = 1 Then
    uboundout = 1
    Exit Function
End If
uboundout = UBound(reference.Value)
End Function

它也不起作用。手册上说默认值已经是1。它也不起作用。手册上说默认值已经是1。@BigBen-当然,已编辑。失败的原因是A1中有2344个字符,或者超过一个字符。哦,当然我犯了一个错误,如果reference.CountLarge=1,您可以简化为
,那么
单元格
是多余的。进一步提示
Ubound()
函数:c.f.声明:“:”返回一个长数据类型,其中包含数组指定维度的最大可用下标。”-因此,将
UBound
应用于一个范围,而不是通过
.Value
.Value2
创建的2-dim 1-based数组,OP会收到一条错误消息。@T.M.这就是我建议编辑的原因,是的,谢谢链接。哦,我刚刚理解了
countlarge
的功能。谢谢。@BigBen-当然可以,已编辑。A1中出现2344之类的内容或超过一个字符的内容时失败。哦,当然我犯了一个错误,如果reference.CountLarge=1,您可以简化为
,那么
单元格
是多余的。进一步提示
Ubound()
函数:c.f.声明:“:”返回一个长数据类型,其中包含数组指定维度的最大可用下标。”-因此,将
UBound
应用于一个范围,而不是通过
.Value
.Value2
创建的2-dim 1-based数组,OP会收到一条错误消息。@T.M.这就是我建议编辑的原因,是的,谢谢链接。哦,我刚刚理解了
countlarge
的功能。非常感谢。