VBA字典与数组第二十讲:如何在代码运行时创建数组

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

这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA字典与数组第二十讲:如何在代码运行时创建数组

fbe034303824e2c6b2f159cb6e5fbf5b.jpeg

【分享成果,随喜正能量】我们于日用必需的东西以外,必须还有一点无用的游戏与享乐,

生活才觉得有意思。。

第二十讲 如何在代码运行时创建数组

大家好,我们今日继续讲解VBA数组与字典解决方案第20讲内容:如何在代码运行时创建数组。数组大家并不陌生了,在之前我讲过很多,今日讲的是在VBA中代码运行的时候如何创建数组,为了实现这个目的,我们需要梳理一下下面的几个知识点:

1 创建数组的函数

Array函数。这个函数返回一个包含数组的Variant

语法:Array(arglist)

Arglist参数是一个用逗号隔开的值表,这些值用于给Variant所包含的数组的各元素赋值。如果不提供Arglist参数,则创建一个长度为 0 的数组。使用Array函数可以在代码运行时创建数组并把一系列数据保存在数组中,

2 LBound函数和UBound函数

这两个函数取得数组的最小和最大下标:

1)LBound函数:返回一个Long型数据,其值为指定数组维可用的最小下标,

语法如下:LBound(arrayname[, dimension])

2)UBound函数:返回一个Long型数据,其值为指定数组维可用的最大下标,

语法如下:UBound(arrayname[, dimension])

参数arrayname是必须的,数组变量的名称。

参数dimension是可选的,指定返回哪一维的下界,1表示第一维,2表示第二维,如此类推。默认为1。

  • 特别注意点:UBound函数与LBound函数一起使用,可以用来确定数组的大小。如:要想知道数组arr的上界是多少,则:UBound(arr);要想知道数组arr的下界是多少,则:LBound(arr)。想知道数组有多少个元素,则:UBound(arr)- LBound(arr)+1

3 Option Base数组下界的声明

Option Base是用来声明数组下标缺省下界的函数,在模块级别中使用。由于下界的缺省设置是 0,因此无需使用 Option Base 语句。如果使用该语句,则必须写在模块的所有过程之前。一个模块中只能出现一次 Option Base,且必须位于带维数的数组声明之前。注意 Dim、Private、Public、ReDim 以及 Static 语句中的 To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用 To 子句显式地指定下界,则可以使用 Option Base 将缺省下界设为 1。使用 Array 函数或 ParamArray 关键字创建的数组的下界为 0;Option Base 对 Array 或 ParamArray 不起作用。Option Base 语句只影响位于包含该语句的模块中的数组下界。

4 代码运行时创建数组的实例

我们来看下面的示例代码:

Option Base 1

Sub MyNZsz_3() '第20讲

Dim arr As Variant

Dim i As Integer

arr = Array("A111", "A222", "A333", "A444", "A555", "A666", "A777", "A888")

For i = LBound(arr) To UBound(arr)

Sheets("20").Cells(i, 1) = arr(i)

Next

End Sub

代码窗口:

a238071b29b1d23231abeccbbd2edc9b.jpeg

代码解析:

1) MyNZsz_3过程使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域。

2)第1行代码使用Option Base语句声明数组下标的缺省下界为1,数组下标的缺省下界默认为0。

3)第5行代码使用Array函数创建数组用来保存数据。

4)第6行代码使用LBound函数和UBound函数取得数组的最小和最大下标。

5)第7行代码确定数组的大小后使用For...Next语句遍历数组元素并将数组元素依次写入到工作表的A列单元格中。

我们来看看代码运行后的截图:

83e360ec908974623e9a11f9a1c37b4b.jpeg

今日内容回向:

1 创建数组用什么函数?(Array函数)

2 数组的上下界是如何取得的?

c01e243e6deb7079b4dc1e86e426663a.jpeg

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

f93497c691bb0a141519571c4cb802a3.jpeg

1145c285ef017cc5fd0ec7ffc4b74ce2.jpeg



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906831.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

J2:ResNet50v2算法实战与解析

J2周:ResNet50V2算法实战与解析 论文解读1、ResNetV2结构与ResNet结构对比☕2、关于残差结构的不同尝试☕3、关于激活的尝试☕ Pytorch实现ResNet50V2算法1、导入库并设置GPU2、导入和检查数据3、划分数据集4、搭建ResNet-50V2模型Residual BlockStack(堆…

MFC图形函数学习04——画矩形函数

MFC中绘制矩形函数是MFC的基本绘图函数,它的大小和位置由左上角和右下角的坐标决定;若想绘制的矩形边框线型、线宽、颜色以及填充颜色都还需要其它函数的配合。 一、绘制矩形函数 原型:BOOL Rectangle(int x1,int y1,int x2,int y2); …

新手BUG:在声明了返回值的函数中不写返回值

本文对两个分别以int和string为返回值类型的函数进行分析,说明了在有返回值的函数中不写返回值会产生的问题。然后给出在编译阶段检查出这样的问题的办法。 一、背景 在软件测试环节发现,函数会在返回之前coredump。经过排查发现,在这个会…

机器人技术革新:人工智能的强力驱动

内容概要 在当今世界,机器人技术与人工智能的结合正如星星与大海,彼此辉映。随着科技的不断进步,人工智能不仅仅是为机器人赋予了“聪明的大脑”,更是推动了整个行业的快速发展。回顾机器人技术的发展历程,我们会发现…

外网访问 Immich 照片管理软件

Immich 是一个自托管的照片和视频备份的平台,它允许用户在私有服务器上存储、管理和分享他们的照片,视频等媒体文件。 第一步,本地部署安装 Immich 1,检查 Docker 服务状态,确保 Docker 正常运行。 systemctl statu…

电脑软件:推荐一款免费且实用的电脑开关机小工具

目录 一、软件简介 二、软件功能 三、软件特点 四、使用说明 五、软件下载 今天给大家推荐一款免费且实用的电脑开关机小工具KShutdown,有需要的朋友可以下载试一下! 一、软件简介 KShutdown是一款精巧且实用的定时自动关机小工具,对于…

Manus在虚拟现实仿真模拟中的应用案例分享

Manus虚拟现实手套作为一种高精度的人机交互设备,在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据,Manus手套为多个行业带来了前所未有的仿真体验,推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Ma…

ensp中acl的使用

拓扑图及其要求如下 基础配置 检查此上R2配置错误,undo重新写 检查手写配置无误 按要求写配置 要求1完成 因为一个接口的入或者出方向上 只能调用一张acl表格,所以要求二照样在R1上面写 要求3

5. STM32之TIM实验--输出比较(PWM输出,电机,四轴飞行器,智能车,机器人)--(实验5:PWM驱动直流电机)

作者:Whappy,日期:2024.10.29,决战STM32 直流电机的控制就比较简单了,只有数据线和地线,正接正转,反接反转,为了方便,本实验采用H桥电路来控制电机的正反转,H桥电路也很简单,就是4个MOS管构成的2路推挽输出电路. 注:基本上大功率器件,单片机基本上是无法驱动的,都是要靠一部分…

Python基础知识汇总(建议收藏再观看)!

1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2、简述位、字节的关系 1bytes8bit ,2**8256,可以代表256中变化, 3、简述 ascii、unicode、…

Java中IO的高级操作

目录 缓冲流 缓冲字节输入流: 缓冲字节输出流: 缓冲字符输入流: 缓冲字符输出流: 转换流 转换流字符输入: 转换流字符输出: 练习案例: 打印流 字节打印流: 字符打印流&a…

Matlab高光谱遥感

原文链接:Matlab高光谱遥感https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247623643&idx5&sne4557ed43728f851140b100f42286988&chksmfa8da23ccdfa2b2a4d795bf4087f672faaa7082d1f52e046616ab7bf196a6eef89ea553d06b1&token1392391660&…

ssm+jsp663数学课程评价系统的设计与开发

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

openssl-ec-chn命令手册

openssl-ec命令处理EC(Elliptic Curve,椭圆曲线)密钥。使密钥可以在各种形式之间转换,并打印出其组件。注意:OpenSSL使用“SEC 1:椭圆曲线密码学(Elliptic Curve Cryptography)”中指定的私钥格…

(JVM)深入JAVA底层 JVM(Java 虚拟机)!带你认识JVM、程序计数器、JVM栈和方法栈还有堆内存!看看JAVA针对这些内存空间都做了什么吧!

1. 什么是JVM java 二进制字节码的运行环境,简称:java 虚拟机(Java Virtual Machine) 2. 好处是什么 一次编写,到处运行自动内存管理,GC垃圾回收功能数组下标越界检查多态… 3. jdk、jre、jvm 4. 学习J…

OLAP平台架构演化历程

OLAP平台架构演化历程 0 导读 随着大数据的持续发展及数字化转型的兴起,大数据OLAP分析需求越来越迫切,不论是大型互联网企业,还是中小型传统企业,都在积极探索及实践OLAP引擎选型及平台架构建设,大数据技术的蓬勃发展…

Kaggle入门指南(Kaggle竞赛)

文章目录 Kaggle 入门指南1. Kaggle 的功能概述1.1 竞赛1.2 数据集1.3 学习与教程1.4 社区 2. 注册与设置2.1 创建账户2.2 完善个人资料 3. 探索数据集3.1 查找数据集3.2 下载数据集示例代码:加载数据集 3.3 数据预处理示例代码:数据预处理 4. 参与竞赛4…

docker 可用镜像服务地址(2024.10.31亲测可用)

1.错误 Error response from daemon: Get “https://registry-1.docker.io/v2/” 原因:镜像服务器地址不可用。 2.可用地址 编辑daemon.json: vi /etc/docker/daemon.json内容修改如下: {"registry-mirrors": ["https://…

TortoiseSVN小乌龟下载安装(Windows11)

目录 TortoiseSVN 1.14.7工具下载安装 TortoiseSVN 1.14.7 工具 系统:Windows 11 下载 官网:https://tortoisesvn.subversion.org.cn/downloads.html如图选 TortoiseSVN 1.14.7 - 64 位 下载完成 安装 打开 next,next Browse&#xf…

CAD图纸防泄密|哪些措施可以加密公司图纸?五个宝藏方法分享,2024必读!

在工程设计领域,CAD图纸作为企业的核心资产,其安全性至关重要。一旦图纸泄露,不仅可能给企业带来重大的经济损失,还可能损害企业的声誉和竞争力。 那么,怎么实现CAD图纸防泄密呢? 以下是五个CAD图纸防泄密…