首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA数组(六)动态数组

比如: dim 数组名称() 然后在程序过程中使用ReDim语句重新定义该数组的大小。...具体完整语句如下: ReDim [Preserve] 数组名(下界 to 上界) [ as 数据类型 ] 使用ReDim语句可以反复改变数组的大小和维度,但不能用ReDim语句更改已经声明的数据类型,...即Redim 数组名(下标)[as 数据类型]。 下面通过几个简单的示例演示下: 首先定义Arr1为动态数组,变量i和变量j为整形变量。通过ReDim语句重新定义Arr1为一维的1到3的数组。...然后用ReDim语句再次重新定义Arr1数组大小,此时在立即窗口中显示Arr1(2)元素,已经没有值了。...(注意使用Preserve关键字,如果ReDim重新定义最后一维的范围变小,多余的元素也是会消失的。)

7.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Excel VBA解读(153): 数据结构——基本的数组操作

    可使用ReDim语句来重新定义数组的大小。...例如,此时知道需要大小为10的数组,可以重新定义数组: ReDim arr(9) 如果觉得需要的数组大小为20,则再重新定义数组: ReDim arr(19) 也可以使用ReDim声明一个动态数组并指定数组的大小...: ReDim arr(6) As Long 注意,虽然可以使用ReDim方便地改变一个动态数组的大小,但每次在重新定义数组大小时,原来存储在数组中的数据会丢失。...例如: ReDim Preserve arr(9) 其实,ReDim的作用是创建一个新数组,而Preserve的作用则是把原数组中的数据复制到新数组中。...Dim arr() As Long Dim i As Long For i = 0 To 10 ReDim Preserve arr(i) arr(i) = i * i Nexti 获取数组的下限和上限

    2.4K20

    VBA中数组、集合和字典(二)——对数组变量的赋值

    有的小伙伴很快就想到了思路,首先定义一个动态数组arr,然后从1到100开始循环遍历,当数字循环到2和3的公倍数时,ReDim该数组的长度为y,并把当前数字添加进数组,y自增加1,再循环到符合条件的数字时...,再ReDim该数组的长度为y,再把当前数字添加进数组,依次循环到100,循环结束后,通过arr(索引)就得到了结果。...于是,我们在循环中重定义数组的代码中加上ReDim的参数Preserve,它的意思就是当arr是一个动态数组,用ReDim Preserve重定义arr修改长度时,不清空之前数组中的元素(Redim 不能重定义静态数组的长度...我们再试一下,如下图: image.png image.png image.png image.png 如果在ReDim中使用了Preserve可选参数,只能调整数组最后维的大小,并且不能改变数组的维数...用ReDim Preserve重定义数组长度时,该数组在声明时必须是动态数组,即Dim arr(),不能声明成Variant类型(即不能Dim arr或者Dim arr as Variant),否则都会报错

    6.9K30

    VBA中动态数组的定义及创建

    在事前不知道数组的大小时,可以声明数组为动态数组,在需要指定数组大小时,再使用ReDim语句分配数组的实际元素的个数。...1、动态数组是可以改变大小的数组,通过在数组名称后附带空括号来声明,如: Dim arrSheetName() as String 2、在定义动态数组之后,必须使用ReDim来设置动态数组的上界和下界,...3、我们可以使用ReDim语句反复地改变数组的元素个数。...最后一个非空单元格行号 j = 1 '数组索引号 xcount = Application.WorksheetFunction.CountIf([c1:c65536], "王*") '统计有多少姓王的学生 ReDim...2 xcount = Application.WorksheetFunction.CountIf([c1:c65536], "王*") '统计有多少姓王的学生 ReDim arr(1 To xcount

    3.3K40
    领券