24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1132  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

gis-li

金虫 (小有名气)

[求助] 关于Excel VBA数组操作已有2人参与

请教各位,我想在VBA里自定义一个函数,是对数组进行某种操作的,能不能实现像内部函数UBound(Arr)一样,不管Arr的数据类型是Sting,Integer或者Long,都可以使用该函数而不报类型不匹配错误。比如如下调用UBound都是没问题的。
Dim a(5) as String
Dim b(10) as Long
Dim n as Integer
n=UBound(a)  
n=UBound(b)  

那么我该如何自定义一个函数也可以 不受数组存储数据类型限制,以执行Test()不报类型不匹配的错误。

Public Function myFun(Arr() as ?) as Boolean
'-------------
End Function

Private Sub Test()

    Dim Arr1(5) as String
    Dim Arr2(10) as Integer

    Msgbox myFun(Arr1)
    Msgbox myFun(Arr2)

End Sub
回复此楼
快乐科研
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gis-li

金虫 (小有名气)

引用回帖:
2楼: Originally posted by deephill at 2014-12-26 10:13:21
我觉得你可以在 test函数中,先判断参数的数据类型,再分别处理,最后输出统一结果。 这样分别处理就不错了。

在Test里做判断?那不是我要写多个myFun函数?

我是想如何不在调用函数时做这些判断,即使必须做类型判断也是在myFun里边做,这样函数myFun就具有通用性了,省的不同类型的数组还得调用不同的函数。
快乐科研
3楼2014-12-26 10:52:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

deephill

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
gis-li: 金币+5 2014-12-26 17:05:16
我觉得你可以在 test函数中,先判断参数的数据类型,再分别处理,最后输出统一结果。 这样分别处理就不错了。
2楼2014-12-26 10:13:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gis-li

金虫 (小有名气)

当然在myFun里判断的前提是怎么设置"Arr() As 类型",能先调用myFun而不报错.
快乐科研
4楼2014-12-26 10:57:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxiaochun

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
gis-li: 金币+10, 有帮助 2014-12-27 22:26:23
Arr as Varient
数组只需要传数组名
5楼2014-12-26 22:10:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见