24小时热门版块排行榜    

查看: 1321  |  回复: 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 08:24 by xxniao123
[基金申请] 基金不中,共勉 +6 eulota 2026-08-26 6/300 2026-08-27 08:00 by zzuzxg
[基金申请] 国自然面上复盘~欢迎讨论 +7 晴天加油 2026-08-26 8/400 2026-08-27 07:53 by longfie172
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 02:01 by Ie9AyIAvGbvs
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 系统查不到 +10 董八千 2026-08-26 10/500 2026-08-26 16:30 by Equinoxhua
[基金申请] 范进中举一文的中心思想 +9 炎黄贵胄 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国际合作可查了,中了面上 +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 怎么看青基中了没有啊 +4 叶九微 2026-08-26 4/200 2026-08-26 10:52 by xiacongxu
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +17 医学老男孩 2026-08-20 22/1100 2026-08-25 15:36 by 医学老男孩
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +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
[教师之家] 跳槽后在研项目怎么办? +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
信息提示
请填处理意见