24小时热门版块排行榜    

查看: 1320  |  回复: 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的回帖

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

金虫 (小有名气)

引用回帖:
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的回帖

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的回帖

gis-li

金虫 (小有名气)

引用回帖:
5楼: Originally posted by zhouxiaochun at 2014-12-26 22:10:20
Arr as Varient
数组只需要传数组名

这个对于内部自带类型确实可以,多谢。

我的程序中还涉及一个自定义类型数据的数组,按照这种参数设置就不行了,提示“只有定义在公共模块中用户定义类型能和变体类型相互转换或传递给后期绑定功能”,请问如何改进?
快乐科研
6楼2014-12-27 22:41:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gis-li 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +15 爱看书的可乐 2026-08-26 17/850 2026-08-27 00:25 by xxniao123
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 LIbGuocjEEYw 2026-08-26 3/150 2026-08-27 00:09 by Ie9AyIAvGbvs
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 系统查不到 +10 董八千 2026-08-26 10/500 2026-08-26 16:30 by Equinoxhua
[基金申请] 2026国自然函评费到账 +22 羊腰板 2026-08-21 25/1250 2026-08-26 15:00 by zuocuiping
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 科研孤儿太难了 +21 我4大白菜 2026-08-20 22/1100 2026-08-26 11:29 by nlgza
[基金申请] 国际合作可查了,中了面上 +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +3 苏东坡二世 2026-08-23 3/150 2026-08-25 10:35 by shisan1313
[基金申请] 我面上完蛋了 +13 且听虎啸 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
信息提示
请填处理意见