Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 兰色幻想

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

  [复制链接]
发表于 2010-8-8 11:01 | 显示全部楼层

Private Sub CommandButton1_Click()<br/>&nbsp;&nbsp;&nbsp; Dim R As Integer<br/>&nbsp;&nbsp;&nbsp; Dim X As Long<br/>&nbsp;&nbsp;&nbsp; R = Sheets.Count<br/>&nbsp;&nbsp;&nbsp; Dim Arr(1 To 10)&nbsp; As Variant '这个为什么不能定义为Arr(1 to R)<br/>&nbsp;&nbsp;&nbsp; For X = 1 To R<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arr(X) = Sheets(X).Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cells(X + 1, 1) = Arr(X)<br/>&nbsp;&nbsp;&nbsp; Next X<br/>End Sub<br/>
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

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

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>fjmxwrs</i>在2010-8-8 11:01:00的发言:</b><br/>rivate Sub CommandButton1_Click()<br/>&nbsp;&nbsp;&nbsp; Dim R As Integer<br/>&nbsp;&nbsp;&nbsp; Dim X As Long<br/>&nbsp;&nbsp;&nbsp; R = Sheets.Count<br/>&nbsp;&nbsp;&nbsp; Dim Arr(1 To 10)&nbsp; As Variant '这个为什么不能定义为Arr(1 to R)<br/>&nbsp;&nbsp;&nbsp; For X = 1 To R<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arr(X) = Sheets(X).Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cells(X + 1, 1) = Arr(X)<br/>&nbsp;&nbsp;&nbsp; Next X<br/>End Sub<br/></div><p>Dim 声明数组时,数组的区域间不能使用变量</p>
回复

使用道具 举报

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

<p>也就是说此例不知道多张表时,超10张,但不知道,怎么办?是不是就应该把这个数组定义大些(箱子多点)可是大到什么程度要怎么来界定或表示?</p><p>另外,怎么来显示一下使用的运行时间是多少?</p><p>&nbsp;msgbox&nbsp; tine这个时间要怎么写?我想测试下这个运行的时间</p>
[此贴子已经被作者于2010-8-8 11:11:52编辑过]
回复

使用道具 举报

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

<p>原来这样就行了</p><p>Sub 数组1()<br/>&nbsp;&nbsp;&nbsp; Dim R As Integer<br/>&nbsp;&nbsp;&nbsp; Dim X As Long<br/>&nbsp;&nbsp;&nbsp; R = Sheets.Count<br/>&nbsp;&nbsp;&nbsp; Dim Arr&nbsp; As Variant&nbsp;<br/>&nbsp;&nbsp;&nbsp; For X = 1 To R<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arr = Sheets(X).Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cells(X + 1, 1) = Arr<br/>&nbsp;&nbsp;&nbsp; Next X<br/>End Sub</p>
回复

使用道具 举报

 楼主| 发表于 2010-8-8 12:16 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>fjmxwrs</i>在2010-8-8 11:09:00的发言:</b><br/><p>也就是说此例不知道多张表时,超10张,但不知道,怎么办?是不是就应该把这个数组定义大些(箱子多点)可是大到什么程度要怎么来界定或表示?</p><p>另外,怎么来显示一下使用的运行时间是多少?</p><p>&nbsp;msgbox&nbsp; tine这个时间要怎么写?我想测试下这个运行的时间</p><br/></div><p></p><p>sub 测试时间()</p><p>dim t</p><p>t=timer&nbsp;&nbsp; '记录开始运行时间</p><p>for x=1 to 1000000</p><p>&nbsp;next </p><p>msgbox timer-t&nbsp; '现在的时间减原来的时间t</p><p>end sub</p>
回复

使用道具 举报

发表于 2010-8-8 19:52 | 显示全部楼层

<p>Sub 式1()<br/>&nbsp; Dim&nbsp;arr As Integer<br/>&nbsp; Dim&nbsp;ayy As Integer<br/>&nbsp; For&nbsp;arr = 1 To 10<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr =&nbsp;ayy<br/>&nbsp;&nbsp; Next ayy<br/>End Sub</p><p>就这样吗?</p><p></p>
回复

使用道具 举报

发表于 2010-8-8 19:54 | 显示全部楼层

有点难[em06]
回复

使用道具 举报

发表于 2010-8-9 10:04 | 显示全部楼层

<p>个人理解:数组就是存在内存中的一个数据中转站,可以对运行速度有提升。</p><p>&nbsp;不懂:26&nbsp;楼和23楼的代码有什么区别?23楼:arr(1 to 10)&nbsp; 26楼&nbsp; arr&nbsp;&nbsp;&nbsp;&nbsp;23楼给了1-10个位置。26楼还算数组吗?在本地窗口没看到数组的十字</p>

新手学VBA数组--示例1

新手学VBA数组--示例1
<br/>

新手学VBA数组--示例1

新手学VBA数组--示例1
<br/>
回复

使用道具 举报

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

26楼的只是一个变量而已
回复

使用道具 举报

发表于 2010-8-9 11:03 | 显示全部楼层

谢谢兰版!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 23:17 , Processed in 0.601804 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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