首页 > 其他分享 >VBA字典与数组第十八讲:VBA中静态数组的定义及创建

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

时间:2024-09-02 18:53:03浏览次数:15  
标签:10 教程 arr 第十八 VBA 数组 声明

《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。

这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA字典与数组第十八讲:VBA中静态数组的定义及创建

VBA字典与数组第十八讲: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


代码截图:

VBA字典与数组第十八讲:VBA中静态数组的定义及创建_数组_02



代码讲解:

1) Dim arr(1 To 10, 1 To 2) As Integer 这里给出了数组的范围最小的是arr(1, 1),最大的是arr(10, 2)

2 ) [a1].Resize(10, 2) = arr 将数组回填给工作表。大家是否理解arr的意义呢?我们看看下面的图:

VBA字典与数组第十八讲:VBA中静态数组的定义及创建_赋值_03


arr 是一个集合。这个集合包括了20个元素(或者叫变量),分别是如上的截图元素。


运行后:

VBA字典与数组第十八讲:VBA中静态数组的定义及创建_赋值_04






今日内容回向:

1 什么是VBA数组。

2 VBA数组如何声明?





VBA字典与数组第十八讲:VBA中静态数组的定义及创建_数组_05




我多年的VBA实践经验,全部浓缩在以下教程中:


VBA字典与数组第十八讲:VBA中静态数组的定义及创建_数组_06








标签:10,教程,arr,第十八,VBA,数组,声明
From: https://blog.51cto.com/u_16912668/11900084

相关文章

  • Leetcode——1.合并有序数组
    给你两个按非递减顺序排列的整数数组nums1_和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2_到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初......
  • 65. 类模板应用 – 数组类封装
    类模板应用–数组类封装将类写到myArray.hpp中属性:T*pAddress;指向堆区数组指针intm_Capacity数组容量intm_Size;数组大小行为myArray(intcapacity)myArray(constMyArray&arr)operator=operator[]~myArray()getCapacitygetSizepushbackmyArray.hpp#p......
  • 【好用小方法】随机生成n个汉字/数字转汉字/字符串去重/list数组去重/获取2的幂次方/
    /***根据参数生成n个中文汉字**@paramnum*@return*/publicstaticList<String>getChaineseList(intnum,List<String>aa){if(num<=0)returnaa;Stringword="";if(aa.size()>0){for(Strings:aa)......
  • Leetcode37-和相等的子数组(2395)
    1、题目给你一个下标从0开始的整数数组nums,判断是否存在两个长度为2的子数组且它们的和相等。注意,这两个子数组起始位置的下标必须不相同。如果这样的子数组存在,请返回true,否则返回false。子数组是一个数组中一段连续非空的元素组成的序列。示例1:输入......
  • ReactJs:使用映射函数后我的父数组得到更新
    在React中,使用映射函数后父数组得到更新是正常的行为。映射函数会创建一个新的数组,其中包含了原始数组中每个元素经过映射操作后的结果。如果你希望在映射函数中修改原始数组,你可以使用forEach方法来遍历数组,并在遍历过程中修改元素。以下是一个示例:constparentArray=[1,2,......
  • 将新对象添加到特定现有数组名称内,并使用索引值进行保存
    你可以使用JavaScript的数组方法来实现这个功能。以下是一个示例代码:letarray=[{id:1,name:'John'},{id:2,name:'Jane'},{id:3,name:'Jack'}];letnewObject={id:4,name:'Jill'};array[array.length]=newObject;c......
  • 一维数组的使用和存储
    数组下标C语言中规定数组是有下标的,从0开始,假设数组有n个元素,则最后一个元素的下标为n-1。下标相当于数组元素的编号。在C语言中数组的访问提供了一个操作符[],叫作下标引用操作符。数组元素的打印与输入#include<stdio.h>intmain(){intarr[10]={1,2,3,4,5,6......
  • 一维数组
    数组一组相同类型元素的集合。数组中存放的是一个或多个数据,数据类型相同。数组的创建//typearr_name[常量值]存放在数组的值称为数组的元素,创建时可指定数组的大小和元素类型。type指定的是元素类型,可以是char、short、int等,也可以是自定义的类型;arr_name指的是数组的......
  • 使用 ...new Set 在 filtred 数组中添加计数重复值
    你可以使用newSet和filter方法来计算数组中重复值的数量。以下是一个示例代码:constarr=[1,2,2,3,3,3,4,4,4,4];constfilteredArr=arr.filter((item,index,self)=>self.indexOf(item)===index);constset=newSet(filteredArr);constcount=fil......
  • Prop效验与Prop默认值用法及循环遍历数组
    Prop效验与使用在HBuilderX里面你把组件传过去,向之前的那样的写法是没有默认值的,写了才有值,否则为空,所以我们可以用另一种方法,写法如下虽然这样写了但是不是完全体的,我们可以给他定个默认值和类型,就像那个String一样,可以约束对象只能是这个的类型这样子另一个页面......