什么是数组,什么是静态数组

发布于 2021-09-22 06:42

【分享成果,随喜正能量】快乐是心的愉悦,幸福是心的满足。别和他人争吵,别和命运争吵,无计较之心,心常愉悦;尽心之余,随缘起止,随遇而安,心常满足。你随和,愉悦的是自己的心,别人计较,苦闷的是他自己。一天的心情靠随和,一生的幸福靠随缘。
《VBA数组与字典方案》教程是我推出第三套教程,目前已经是第一版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。七、三、一套教程掌握后,可以解决大多数工作中遇到的实际问题。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第18讲:什么是数组,什么是静态数组。

第十八讲  VBA中静态数组的定义及创建

大家好,我们今日继续讲解VBA数组与字典解决方案,今日讲解第18讲:VBA数组如何定义,又该如何创建。
从这一讲开始,我们开始进入VBA数组阶段,VBA数组和工作表数组有着不同的意义,在很大程度上,工作表数组的运算甚至可以看做是程序的运行,能够理解工作表数组的运算过程对于VBA代码的书写是非常有益的,但VBA数组在大多数情况下,只是作为变量来存储数据。这点和工作表数组有很大的不同。

1  什么是VBA数组

所谓VBA数组,就是共享一个名字,有着多个元素按顺序排列的变量。数组中的数据具有相同的类型和结构,元素通过索引加以区分。这里我把数组的元素看做变量来对待,大家要注意,这个观点在应用过程中是非常有意义的。    

2  如何定义静态数组

数组在使用前必须要进行声明,声名数组同声明其他变量的方式一样,也是用Dim语句来声明。唯一不同的是数组有大小,即有多少个元素,或者说变量,还有就是要说明数组的维数。一般情况下使用较多的是一维数组和两维数组,需要注意的是数组要以字母开头,所用的字符仅限字母、数字和下下划线,不允许出现标点符号和空格。当声明了一个数组,便决定了这个数组用于存储数数据所用的内存空间。
默认情况下数组是以0为下界,也就是Option Base 0,大多数情况下我们都是遵守此默认情况的,并且在用数组时忽略数组的第一个元素,上届不能超过LONG数据类型的范围,而且上届值不能小于下届值。
如果我们习惯了用1作为我们的下界,可以强制声明:Option Base 1,需要注意的是Option Base 0(1)必须放在所用模块之前。当然,我们也可以忽略这个强制声明,那我们就需要在声明数组时,指明数组的上界和下界,如:Dim arrSheetName(1 to 3) as String表明这个数组的上下界分别是1和3

3  VBA静态数组的声明及赋值实例

下面我们讲通过一个实例来说明数组的声明及赋值,如下面的代码:
 
Sub Mynzsz() '第18讲 VBA数组的定义及创建
      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].ClearContents    '清除原有数据
    [a1].Resize(10, 2) = arr '将数组赋值给A1单元格向下10行,向右2列的区域
End Sub
代码截图:
代码讲解:
1)  Dim arr(1 To 10, 1 To 2) As Integer  这里给出了数组的范围最小的是arr(1, 1),最大的是arr(10, 2)
2 )  [a1].Resize(10, 2) = arr  将数组回填给工作表。大家是否理解arr的意义呢?我们看看下面的图:
arr 是一个集合。这个集合包括了20个元素(或者叫变量),分别是arr(1,1);arr(2,1);arr(1,2);arr(2,2);arr(1,3);arr(2,3);arr(1,4);arr(2,4);arr(1,5);arr(2,5);arr(1,6);arr(2,6);arr(1,7);arr(2,7);arr(1,8);arr(2,8);arr(1,9);arr(2,9);arr(1,10);arr(2,10)
运行后:

今日内容回向:
1  什么是VBA数组。
2  VBA数组如何声明?
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解
第1套教程(共三册):《VBA代码解决方案》是入门后的提高教程
第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)
第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解
第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解
第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用
第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解
第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用
上述教程的学习顺序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8
    

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材