VBA数组基础学习.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VBA数组基础学习

VBA数组基础学习 VBA数组基础学习 一、数组概念 二、数组就是一个列表或者一组数据表。它是由连续可索引的具有相同内在数据类型的元素所组成的集合,数组中每一个元素都具有唯一的索引号。更改其中一个元素并不会影响到其它元素。 数组存在内存,可以利用索引号获取该集合中每一个子集。 数组的两个特点: 1、读写速度快 VBA读取对象中的值永远慢于读取内存中的值。可以借助VBA数组对程序提速。 2、无法永远保存 数据存于工作表区域内,可以永久保存。但存入内存中的变量数组和常量数组却受其作用域影响生命周期。 过程级别的私有数组变量或者常量数组在过程结束后会自动释放,结束其生命周期; 而公有的变量数组和常量数组在excel应用程序关闭后会自动释放。也就是重新启动excel后,以前任何数组都不存在。 3、数组分类 按照数组元素是否固定来分,可以分为静态数组和动态数组; 按照数组维度来分,可以分为一维数组、二维数组等,最多只能为60维。 二、数组的维度 数组可以是一维、二维直到六十维。而对于excel工作表来说, excel的每一行或者每一列就可以转换成一维数组,而多行多列就可以转换成二维数组。 1、一维数组 在数组公式中,在A1:F1区域中输入数组公式:={1,2,3,4,5,6} ,然后按Ctrl+Shift+Enter,就可以在A1:F1之间得到了横向区域的值。 在A1:A6区域中输入数组公式:={1;2;3;4;5;6},然后按 Ctrl+Shift+Enter,就可以在A1:A6之间得到了纵向区域的值。 而VBA数组也可以得到同样的效果: 2.1 VBA 代码 Sub 横向数组() [A1:F1] = [{1,2,3,4,5,6}] End Sub [{1,2,3,4,5,6}]代表是一维横向数组。 2.2 VBA代码 Sub 纵向数组() [A1:A6] = [{1;2;3;4;5;6}] End Sub [{1;2;3;4;5;6}]代表是一维纵向数组。 从上面两个赋值过程来看,看到数组在VBA中的优势,不仅可以对单元格进行循环赋值,还可以把原本需要循环6次的操作集中一次完成。 2、二维数组 对于三行三列的数组,我们可以使用数组公式:={1,1,1;2,2,2;3,3,3} 在VBA中也可以用数组表示一个二维数组,如下面例子 Sub 二维数组() [A1:C3] = [{1,1,1;2,2,2;3,3,3}] End Sub 三、利用索引号获取数组中的元素 类似Range可以使用索引号访问区域中每一个单元格一样,一维数组和二维数组也可以使用索引号获取数组中每一个值。主要有两种形式: 形式一:Arr(Item) 形式二:Arr(RowIndex,ColumnIndex) 这两种形式看起来在形式上和Range的索引号完全一致,但在事实上存在很多差异。 请看差异在哪里, 例子1: Sub 索引号引用数组() Dim arr1() 声明数组变量arr1 = Array(wise, rose, 小花鸟, 小花鸭) 对数组赋值 MsgBox arr1(1) 正确的引用 MsgBox arr1(1, 1) 错误的引用 End Sub 在例子1中,对于一维数组的两种索引方式只能前者可以正常执行,后者会产生错误。 例子2: Sub 索引号引用数组1() Dim arr1() 声明数组变量 arr1 = [{1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4}] 对数组赋值 MsgBox arr1(4, 2) 正确的引用 MsgBox arr1(4) 错误的引用 End Sub 对于二维数组,例子2中两种方式只能使用第一种方式,而后者会产生错误。当使用索引号引用数组时候,值得注意是:第一个元素的默认索引值。 在默认状态下,如果模块中未指定第一个元素的索引号,那么默认为0。即数组中arr中的第一个值用arr(0)来表示,最后一个元素的索引号则为数组元素个数减1来表示。 如下例子: Sub 索引号引用数组() Dim arr1() 声明数组变量 arr1 = Array(wise, rose, 小花鸟, 小花鸭) 对数组赋值 MsgBox arr1(1) 正确的引用 End Sub 该例子显示的结果是rose而不是wise。如果不习惯这种默认的索引方式,可以利用option base语句。option base 1:表示数组中第一个元素的索引号为1 option base 语句只能置于模块的顶部,并且可选值只能为0或1 。因为默认状态为0,那么option base 0可以忽略。 四、声明数组与赋值 1、声明数组变量声明数组和声明其他变量一样,可以使用dim 、static、private 或public等语句声明。一般来说,有两种声明方式,

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档