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 在上面这组数中取值 ,该如何实现
展开
 我来答
帐号已注销

2021-04-01 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.2万
采纳率:80%
帮助的人:371万
展开全部
大家好,我们今日继续讲解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个
阳光上的桥
2017-08-09 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65796
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
for each i in array(1, 6, 8, 18, 19, 20, 25, 62, 63, 64)
    msgbox "i=" & i
next i
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cathysen
推荐于2017-04-23
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
aaa=array(1,6,8,18,19,20,25,62,63,64)
for i=0 to ubound(aaa)
msgbox(aaa(i))
next
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
表里如一
2011-07-05 · 知道合伙人软件行家
表里如一
知道合伙人软件行家
采纳数:2066 获赞数:11634
从事6年生产管理,期间开发了多款小软件进行数据处理和分析,后

向TA提问 私信TA
展开全部
Dim i as integer, aaa(9) as integer
aaa=array{1, 6, 8, 18, 19, 20, 25, 62, 63, 64}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weizhong1688
2017-08-09 · TA获得超过1247个赞
知道小有建树答主
回答量:1514
采纳率:61%
帮助的人:593万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式