excel vba中如何定义数组,并赋值
举个例子:Dimiasinteger,aaa(9)asinteger数组aaa的元素为1,6,8,18,19,20,25,62,63,64我想让i在上面这组数中取值,该如...
举个例子:
Dim i as integer, aaa(9) as integer
数组aaa 的元素为1, 6, 8, 18, 19, 20, 25, 62, 63, 64
我想让 i 在上面这组数中取值 ,该如何实现 展开
Dim i as integer, aaa(9) as integer
数组aaa 的元素为1, 6, 8, 18, 19, 20, 25, 62, 63, 64
我想让 i 在上面这组数中取值 ,该如何实现 展开
展开全部
大家好,我们今日继续讲解VBA代码解决方案的第110讲内容:VBA数组讲解:什么是数组,如何定义数组,如何创建数组
一、什么是数组 就是数组共享一个名字,有着多个元素按顺序排列的变量。在数组中,元素通过索引加以区分。这里我把数组的元素看做变量来对待,大家要注意,这个观点在应用过程中是非常有意义的。
二、如何定义数组 声名数组同声明其他变量的方式一样,唯一不同的是数组有大小,即有多少个元素,或者说变量,还有就是要说明数组的维数。
如下面的代码:
Sub Mynzsmart()
Dim i As Integer, j As Integer
Dim arr(1 To 10, 1 To 2) As Integer '定义一个10*2的二维数组(10行,2列)
j = 1 '数组1 to 10的索引号
For i = 1 To 20 Step 2
arr(j, 1) = i '赋值
arr(j, 2) = i + 1 '赋值
j = j + 1 '索引号增加
Next
[a1:b65536].Clear '清除原有数据
[a1].Resize(10, 2) = arr '将数组赋值给A1单元格向下10行,向右2列的区域
End Sub
代码截图:
运行后:
三、动态数组
在上面的讲解中我们知道,声明一个数组,必须指定数组的大小,即它是几维数组,有多少个元素。但有些时候,我们在定义数组的时候,并不能确定数组的大小,这时,我们在首次定义数组的时候括号内为空(当然先指定一个大小也是可以的,但纯属是多余),在程序过程中用Redim语句去重新指定数组的大小,这就是动态数组。
比如一个工作表的C列存储了学生姓名,现在我们需要把把有姓“王”的学生存储在数组arr中,预先我们并不知道C列姓王的学生有三十个还是五十个,所以,我们在定义时代码可以这样:
代码:
Sub MyNZsmarttwo()
Dim i%, xrow%, j%, xcount%
Dim arr() As String
erow = [c65536].End(3).Row '最后一个非空单元格行号
j = 1 '数组索引号
xcount = Application.WorksheetFunction.CountIf([c1:c65536], "王*") '统计有多少姓王的学生
ReDim arr(1 To xcount) '重新定义数组大小,元素共有xcount个
一、什么是数组 就是数组共享一个名字,有着多个元素按顺序排列的变量。在数组中,元素通过索引加以区分。这里我把数组的元素看做变量来对待,大家要注意,这个观点在应用过程中是非常有意义的。
二、如何定义数组 声名数组同声明其他变量的方式一样,唯一不同的是数组有大小,即有多少个元素,或者说变量,还有就是要说明数组的维数。
如下面的代码:
Sub Mynzsmart()
Dim i As Integer, j As Integer
Dim arr(1 To 10, 1 To 2) As Integer '定义一个10*2的二维数组(10行,2列)
j = 1 '数组1 to 10的索引号
For i = 1 To 20 Step 2
arr(j, 1) = i '赋值
arr(j, 2) = i + 1 '赋值
j = j + 1 '索引号增加
Next
[a1:b65536].Clear '清除原有数据
[a1].Resize(10, 2) = arr '将数组赋值给A1单元格向下10行,向右2列的区域
End Sub
代码截图:
运行后:
三、动态数组
在上面的讲解中我们知道,声明一个数组,必须指定数组的大小,即它是几维数组,有多少个元素。但有些时候,我们在定义数组的时候,并不能确定数组的大小,这时,我们在首次定义数组的时候括号内为空(当然先指定一个大小也是可以的,但纯属是多余),在程序过程中用Redim语句去重新指定数组的大小,这就是动态数组。
比如一个工作表的C列存储了学生姓名,现在我们需要把把有姓“王”的学生存储在数组arr中,预先我们并不知道C列姓王的学生有三十个还是五十个,所以,我们在定义时代码可以这样:
代码:
Sub MyNZsmarttwo()
Dim i%, xrow%, j%, xcount%
Dim arr() As String
erow = [c65536].End(3).Row '最后一个非空单元格行号
j = 1 '数组索引号
xcount = Application.WorksheetFunction.CountIf([c1:c65536], "王*") '统计有多少姓王的学生
ReDim arr(1 To xcount) '重新定义数组大小,元素共有xcount个
展开全部
for each i in array(1, 6, 8, 18, 19, 20, 25, 62, 63, 64)
msgbox "i=" & i
next i
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
aaa=array(1,6,8,18,19,20,25,62,63,64)
for i=0 to ubound(aaa)
msgbox(aaa(i))
next
for i=0 to ubound(aaa)
msgbox(aaa(i))
next
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-05 · 知道合伙人软件行家
关注
展开全部
Dim i as integer, aaa(9) as integer
aaa=array{1, 6, 8, 18, 19, 20, 25, 62, 63, 64}
aaa=array{1, 6, 8, 18, 19, 20, 25, 62, 63, 64}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub a()
Dim aaa(9)
aaa(0) = 1
aaa(1) = 6
aaa(2) = 8
aaa(3) = 18
aaa(4) = 19
aaa(5) = 20
aaa(6) = 25
aaa(7) = 62
aaa(8) = 63
aaa(9) = 64
For f = 0 To 9
i = aaa(f)
Debug.Print i
Next f
End Sub
Dim aaa(9)
aaa(0) = 1
aaa(1) = 6
aaa(2) = 8
aaa(3) = 18
aaa(4) = 19
aaa(5) = 20
aaa(6) = 25
aaa(7) = 62
aaa(8) = 63
aaa(9) = 64
For f = 0 To 9
i = aaa(f)
Debug.Print i
Next f
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询