通过EXCEL VBA自定义了一个函数,无法把数组传入到函数中。
答案:2 悬赏:40
解决时间 2021-02-13 19:11
- 提问者网友:话酸浅沫
- 2021-02-13 13:23
通过EXCEL VBA自定义了一个函数,无法把数组传入到函数中。
最佳答案
- 二级知识专家网友:转身→时光静好
- 2021-02-13 15:02
只能传 单元格,然后转数组。如下
Function MyTest(rng As Range)
Dim arr() As Variant
Set arr = rng.Value
MyTest = UBound(arr)
End Function
Function MyTest(rng As Range)
Dim arr() As Variant
Set arr = rng.Value
MyTest = UBound(arr)
End Function
全部回答
- 1楼网友:茫然不知崩溃
- 2021-02-13 16:32
excel vba数组赋值主要分为一维数组赋值和二维数组赋值两方面来讲,多维数组赋值只要沿用二维的方法即可。在将vba 数组赋值的方法之前,先说下为什么要用数组的方法来写程序吧。使用excel vba数组赋值的主要目的是为了提高程序运行效率,相信用vba编程的童鞋都遇到过程序运行过慢的问题,其中最主要的一个原因就是excel vba程序从头至尾都在操作对象。用excel vba对数组进行赋值,即是将对象的值及相关属性,全部存储到内存中,然后在内存里执行其他程序,这样速度会提高非常多。好了,下面说怎么给excel vba数组进行赋值吧excel vba一维数组赋值的方法int arr(5)={1,2,3,4,5}说明:括号中的5是指数组长度,固定数组在最开始确定好数组长度,使内存分配好空间,免去重定义数组长度,效率会高些。如果不定义数组长度的话,后期可以使用redim来更改。excel vba二维数组赋值的方法arr = [{"a","b"; "e","f" ;"i","j";"m" ,"n"}] arr = range(sheets("文本1").range("a1"), sheets("文本1"). range("a" & cells(65536, 1).end(xlup).row))说明:两种赋值方法如上,一个是赋予固定值,另一个是将某区域内数值全部导入。excel vba重新定义数组的方法redim preserve arr(j)最后说下excel vba二维数组取数据上限的程序,如下,不过要先确定好你的数组是从0开始计数还是从1开始计数的,上面所讲数组赋值的例子都是从1开始计数的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯