excel自定义函数,定义一个数组,我怎么可以不声明数组的长度,而是让它随着我元素的增多自动加长

2024-12-12 17:23:35
推荐回答(2个)
回答1:

声明动态数组即可

dim arr()
for x=1 to 100
redim preserve arr(1 to x)‘动态声明数组
arr(x)=x
next x
你想自定义什么函数呢?

回答2:

定义动态数组:
  动态数组的定义,一开始不需要给数组标明上界和下界。直接定义即可,如下面的代码:
  Dim MyStr() As String
  这样,就定义了一个动态数组及其名称:MyStr(),现在,该数组的上界下界都是个未知数,也就是说,数组中到底有没有内容或到底有什么内容,是个未知数。
  因此,要使用动态数组,就必须对其定义好下界和上界。
  二、给动态数组确定下界和上界
  给动态数组重新确定下界和上界,那么,分两种情况。
  ①保留原值
  采用此代码:ReDim Preserve MyStr(n) 'n为数组长度
  ②不保留原值
  采用此代码:ReDim MyStr(n) 'n为数组长度
  ③以上两种情况的实例
  下面我们看如上两种情况的小实例:
  比如:
  Dim MyStr() As String
  ReDim MyStr(2)
  MyStr(0)=”1”
  MyStr(1)=”2”

  现在,这个动态数组有两个值了,分别是0和1,现在,我们再重新确定该数组的长度。
  当然,重新确定自然又有两种情况了。
  A、保留原有数据
  ReDim Preserve MyStr(3) '原来长度是2,现在重新确定为3,并且,保留原有的数据。  MyStr(2)=”3” '现在,该数组就有三个值了,分别是:
  MyStr(0)为1、MyStr(1)为2、MyStr(2)为3
  B、不保留原有数据
  如果我们使用如下代码
  ReDim MyStr(3)  MyStr(2)=”3”
  现在,该数组的长度尽管为3,但是,里面却只有一个数据了,那就是,MyStr(2)的值是3,而MyStr(0)和MyStr(1)里面,什么都没有。
  关键字:Preserve的作用就的保留原有值,请根据需要加以取舍。