Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 28511|回复: 99

[资料] 新手学VBA数组--示例1

  [复制链接]
发表于 2010-8-3 10:20 | 显示全部楼层 |阅读模式
<p><font color="#0909f7">前言</font>:不要把VBA数组想的太神秘,它其实就是一组数字而已</p><p>Sub 数组入门1()</p><p>&nbsp; Dim x As Integer<br/>&nbsp; Dim arr(1 To 10) '<font color="#0f0fce">创建一个可以盛下10个数的箱子,第一个位置是arr(1),第二个位置用arr(2)..</font><br/>&nbsp; <br/>&nbsp; For x = 1 To 10&nbsp;&nbsp; <font color="#0808d6">'通过循坏向这个箱子里1-10个位置放入10个数</font><br/>&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; arr(x) = x&nbsp; <font color="#0022aa">'箱子里依次放入数字1-10,即arr(1)=1,arr(2)=2....</font><br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; Next x<br/>&nbsp; <br/>&nbsp; <font color="#0808d6">'通过上面的循环,数组里装满了10个数字,下面就可以用arr(序数)得到相应位置的数了</font><br/>&nbsp; <br/>&nbsp; MsgBox arr(5)<font color="#0707b5"> '显示数组内第5个数字</font><br/>End Sub</p>
[此贴子已经被作者于2010-8-3 10:30:33编辑过]

评分

参与人数 6 +6 收起 理由
明月清风戚戚 + 1 赞一个!
神隐汀渚 + 1 很给力! 2楼 是那个?
wyq64622 + 1 很给力! 2楼是傻×
seki_100 + 1 很给力!
bbhiox + 1 很给力!

查看全部评分

 楼主| 发表于 2010-8-3 10:31 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>无爱无恨</i>在2010-8-3 10:28:00的发言:</b><br/><p>这不是与一般的没啥样,只是用arr减少了赋值:</p><p>Sub 式1()<br/>&nbsp; Dim k As Integer<br/>&nbsp; Dim X As Integer<br/>&nbsp; For X = 1 To 10<br/>&nbsp;&nbsp;&nbsp;&nbsp; k = X<br/>&nbsp;&nbsp; Next X<br/>End Sub</p></div><p></p>你的K最终结果只是一个数(最后的10),不是一组
回复

使用道具 举报

 楼主| 发表于 2010-8-3 10:52 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>无爱无恨</i>在2010-8-3 10:48:00的发言:</b><br/><p>哪我加一行:cells(x,1)=x</p><p>也能达到效果啊</p></div><p></p>你放在单元格了,也是一组数,只是它是显示在单元格中
回复

使用道具 举报

发表于 2010-8-3 10:59 | 显示全部楼层

<p>&nbsp;For x = 1 To 10&nbsp;&nbsp; <font color="#0808d6">'通过循坏向这个箱子里1-10个位置放入10个数</font></p><p><font color="#0808d6">为什么我改成 for x = 10 to 19 就下标越界了呢</font></p><p><font color="#0808d6">哦,懂了,是arr(x) = x,这里x只能是1到10</font></p>
[此贴子已经被作者于2010-8-3 11:04:43编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-8-3 11:04 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>sclxc</i>在2010-8-3 10:59:00的发言:</b><br/><p>&nbsp;For x = 1 To 10&nbsp;&nbsp; <font color="#0808d6">'通过循坏向这个箱子里1-10个位置放入10个数</font></p><p><font color="#0808d6">为什么我改成 for x = 10 to 19 就下标越界了呢</font></p></div><p></p><p>开始都给这个数组编好号了,arr(1 to 10)&nbsp; </p><p>去看电影,电影院只有10排座位,你能坐到第11排的位置吗?</p>
回复

使用道具 举报

发表于 2010-8-3 11:20 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder">小无,<br/></div><p></p>你的不是鞋柜,我们的可以放好多鞋子的[em04]
[此贴子已经被作者于2010-8-3 14:17:23编辑过]
回复

使用道具 举报

发表于 2010-8-3 12:25 | 显示全部楼层

我来学习了。
回复

使用道具 举报

发表于 2010-8-3 14:26 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>兰色幻想</i>在2010-8-3 10:20:00的发言:</b><br/><p>&nbsp; Dim x As Integer<br/>&nbsp; Dim arr(1 To 10) '<font color="#0f0fce">创建一个可以盛下10个数的箱子,第一个位置是arr(1),第二个位置用arr(2)..</font><br/>&nbsp; <br/>&nbsp; For x = 1 To 10&nbsp;&nbsp; <font color="#0808d6">'通过循坏向这个箱子里1-10个位置放入10个数</font><br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/></p></div><p>arr()就是那个箱子了,如果不用arr(),range("a1:a10")也可以代替这个箱子呀,这里用arr()有什么优势呢?</p>
回复

使用道具 举报

发表于 2010-8-3 14:44 | 显示全部楼层

学习来啦
回复

使用道具 举报

 楼主| 发表于 2010-8-3 23:33 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>liuliu66</i>在2010-8-3 14:26:00的发言:</b><br/><p>arr()就是那个箱子了,如果不用arr(),range("a1:a10")也可以代替这个箱子呀,这里用arr()有什么优势呢?</p></div><p></p>在内存中运算,远比调用单元格运算快的多,一个是光速,一个是蜗牛爬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 13:06 , Processed in 0.331303 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表