专栏首页Excel和Access学习笔记VBA数组(一)基础知识

VBA数组(一)基础知识

大家好,前面介绍过VBA变量,可以通过它来访问数据。但对于大量数据时候,通过声明变量就显得太繁琐,此时就可以通过数组来访问数据解决。

说到数组,在介绍Excel函数时已经涉及,但在VBA中数组的用法与函数公式中有所不同,下面将主要介绍VBA中数组的一些基础知识,让大家对数组先有个初步的认识。

一、数组的定义

VBA中的数组是由相同类型的变量连续排列在一起所构成的。数组本身也是一种形式的变量,通过它来访问数据。数组主要有以下特点:

1、数组共享同一个名字,就是数组名。

2、数组中的变量是同种类型的(在声明数组时会介绍)。

3、数组中的元素按次序存储在数组中,可以通过索引号进行区分。

4、数组也是变量。

5、数组可以有多个维度,常用的是1维、2维和3维,数组最多支持60维。

二、数组名称命名规则

VBA数组是共享一个名称,即数组名。它命名与变量命名的原则一致,主要有以下基本基本原则:

1、不能以数字或者下划线开头

2、不能仅有数字组成

3、不能有%、¥、&、#、@等特殊字符

4、名字必须唯一,不能与其他变量或数组有相同名称。

三、数组的维度

讲解VBA数组前,首先说明下数组的维度概念,因为在使用VBA数组时都需要明确数组的维度。可以通过将Excel表格来形象化的去理解数组维度,特别是常用的一维和二维。

1、一维

一维数组就可以用一行单元格去理解,例如下图可以理解成是容纳5个元素的一维数组的形象化。其中单个元素的位置可以通过一个索引号标注出来,是从0至4中的一个整数。(数组中索引号默认从0开始,具体后面会介绍。)

2、二维

假设在Excel工作表中有5行5列范围的单元格区域,只有同时确定行号和列号时,才能确定某个单元格的位置。Excel的单张工作表就是二维表。

下图可以理解成是容纳二维数组的形象化,第一个维度索引号从0至4,第二个维度也是0至4。其中单个元素的位置可以通过两个索引号标注出来,总共可以容纳5*5=25个元素。(数组中索引号默认从0开始,后面会介绍。)

3、三维

假设Excel中同时又多张工作表时,对于某一个工作表的单元格的位置,就需要工作表序号,列号和行号,三个参数才能确定。

三维数组类似的,数组中一个元素的位置就需要三个索引号来确定。

例如下图可以理解成是容纳三维数组的形象化,第一个维度从0至4,第二个维度也是0至4。第三个维度从0至2,可以容纳5*5*3=75个元素。其中单个元素的位置可以通过三个索引号标注出来。(数组中索引号默认从0开始,后面会介绍。)

总结:对于数组的维度,需要几个索引号才能确定数组中元素的位置,那么数组就是几维的。

魔方和图书馆书架等是现实中容易帮助理解维度的实体,也可以利用在数学中学过的线、面、体上点的坐标来理解维度。(超过三维通常特殊用途才会用到,平时工作使用理解到一维到三维即可。)

四、索引号、上界和下界

在使用数组时首先确定的是维度。而不同的维度都有不同的范围。类似Excel表格中单元格区域的行号和列号范围。在数组中称为索引号,同时索引号均为整数。(不同于Excel中的列为字母。)

数组维度起始和结束的数值起名叫下界和上界。每个维度的下界和上界是独立的。

数组的维度主要在声明数组时使用,用户定义两者的值,而通过下界和上界的数值可以计算数组的容量大小。数组中单个维度的范围为 (上界-下界+1),数组的大小为各个维度范围相乘。

以上节的二维数组为例,两个维度的下界为默认值0,上界为4。数维度的范围即上界-下界+1,计算结果均为5,数组大小为5*5=25,即可以容纳25个元素。

数组的下界默认为从数值0开始。如果需要默然从1开始。需要在编程开头加上option base 1 语句来设置即可。或者在声明数组时第一维下界从1开始。也可以从其他数值开始(上界要大于下界),这些后面介绍声明数组时会有详细介绍。


今天下雨

本节主要介绍数组的基础知识,重在理解数组的维度,索引号、上界和下界的概念,后续会介绍数组的其他内容,祝大家学习快乐。


本文分享自微信公众号 - Excel和Access学习笔记(excel-note),作者:无言之月

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VBA数组(三)数组赋值

    大家好,上节介绍了在使用数组之前如何声明数组,本节就来介绍静态数组如何赋值。(动态数组会单独一节讲解)

    无言之月
  • VBA数组(二)声明数组

    大家好,上节介绍了数组的维度,索引号、上界和下界的知识,本节继续介绍数组的基础知识,包括数组的分类,以及如何声明数组。关于数组的内容相对抽象,会尽量介绍详尽。

    无言之月
  • VBA数组(六)动态数组

    大家好,前面已经介绍过了如何声明数组、数组赋值、静态数组和数组函数等等知识点,本节主要讲解动态数组。

    无言之月
  • 图解算法系列(三):数组

    "数组"结构其实就是一排紧密相邻的可数内存,并提供了一个能够直接访问单一的数据内容的计算方法.我们其实可以想象一下自家的信箱,每一个信箱都有住址,其中路名就是名...

    公众号---志学Python
  • Python-NumPy基础

    前言 这两天读完《利用Python进行数据分析》 这本书的第4章:NumPy 基础:数组和矢量计算 后,在进行下一步阅读高级应用前,先整理本章内容,做个笔记备查...

    Alan Lee
  • 数组未必一定需从0开始,谈一下非0开始的数组

      谈到数组时,当被问及数组是从什么数开始时,估计大部分程序员都会直接说出数组当然是从0开始的。这个回答当然没有错,现在我们就来了解一下C#中的下限非...

    彭泽0902
  • 房上的猫:数组

    一.数组:  1.定义:   (1)数组就是一个变量,用于将相同数据类型的数据储存在内存中   (2)数组中的每一个数据元素都属于统一数据类型  2.基本要素:...

    房上的猫
  • 【Java提高十五】数组

    一、什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸是不可变的!...

    Java帮帮
  • (二十五)golang--数组

    绝命生
  • 13 个 JavaScript 数组精简技巧

    数组是 JS 最常见的一种数据结构,咱们在开发中也经常用到,在这篇文章中,提供一些小技巧,帮助咱们提高开发效率。

    前端小智@大迁世界

扫码关注云+社区

领取腾讯云代金券