ReDim语句的应用

2024-06-21 46

今天的内容是《EXCEL在VBA中的应用》第十二章“ExcelVBA中表格的应用”。本讲座为第3节“ReDim语句的应用”。这套教程从简单的宏录制开始,一直到表单的搭建,内容丰富,案例多。每个人都可以很容易地掌握相关知识。这套教程适合初学者。它由三卷十七章组成,是我们使用EXCEL时必须掌握的内容。

第三节ReDim声明的应用

大家好,上一节我们讲解了如何使用动态数组来重新分配内存。在本文中,我们将重点介绍重新分配内存时使用的Redim语句。

1ReDim语句语法

ReDim语句在过程级别使用,为动态数组变量重新分配存储空间。

语法:ReDim[保留]varname(下标)[Astype],[varname(下标)[Astype]]

保存是可选的。用于在调整最后一个维度大小时保留现有数组中的数据的关键字。

varname是必需的。变量的名称遵循标准变量的命名约定;

需要订阅。数组变量的维度最多可以声明为60个维度。

下标参数使用以下语法:

[lowerTo]上限[,[lowerTo]upper]

如果未显式指定下界,OptionBase语句将检查数组的下界。如果不存在OptionBase语句,则下限为零。

类型是可选的。变量的数据类型可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前不支持)、Date、String(对于可变长度字符串)、Stringlength(对于定长字符串)、object、variable;用户定义类型,或对象类型。

2使用ReDim语句

ReDim语句用于调整已使用Private、Public或Implicit语句(无维度订阅)正式声明的动态表的表大小。

在实际应用中,可以多次使用ReDim语句来改变数组中的元素数量和维数。但是,您不能使用ReDim将数组更改为其他数据类型的数组,但如果将数组声明为Variant类型,则可以使用Astype子句更改元素的类型。但是,如果使用Save关键字,则不允许更改数据类型。

如果使用Save关键字,则只能调整最后一个表维度的大小,而无法更改维度数。例如,如果您的表只有一个维度,您可以调整该维度的大小,因为它是最后一个也是唯一的维度。但是,如果数组有两个或多个维度,则只能调整最后一个维度的大小并保留数组的内容。

使用Preserve时,只能通过改变上限来改变数组,改变下限会导致错误。如果减小数组大小,则删除的元素中的数据将丢失。

使用3ReDim语句的示例

1)以下代码显示增加动态数组最后一维的大小,而不删除数组中的任何现有数据。

RedimX(10,10,10)

RedimPreserveX(10,10,15)

2)下面的示例使用ReDim语句为动态数组变量分配和重新分配存储空间。它将OptionBase设置为1。

DimMyArray()AsInteger

RedimMyArray(5)

对于I1到5

我的桌子(I)I

之后

3)以下语句调整表格大小并清除元素。

RedimMyArray(10)

对于I6至10

我的桌子(I)I

之后

4)以下语句调整数组大小,但不清除元素。

RedimPreserveMyArray(15)

对于I11至15

我的桌子(I)I

下一个

查看下面的通用代码:

SubmynzD()'ReDim语句的应用

DimMyArray()AsInteger

RedimMyArray(5)

对于I1到5

我的桌子(I)I

之后

MsgBox的第五个值为:'MyArray(5)'值为5

RedimMyArray(10)

对于I6至10

我的桌子(I)I

之后

消息博x'的第五个值是:'MyArray(5)'值为0

MsgBox的第六个值为:'MyArray(6)'值为6

对于I1到5

我的桌子(I)I

之后

RedimPreserveMyArray(15)

对于I11至15

我的桌子(I)I

之后

MsgBox的第五个值为:'MyArray(5)'值为5

MsgBox的第六个值为:'MyArray(6)'值为6

结束子

代码截图:

代码运行结果:(略)

今日内容回顾:

1)ReDim语句的作用是什么

2)先想想上面代码的结果,然后运行它?

本讲内容参考程序文件:workbook12xlsm

分享成果,享受正能量

VBA应用及学习方法:

VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我的VBA应用程序定义。在新型办公软件取代OFFICE到来之前,能够在数据处理上达到极致的将是王者。其中,终极技能非VBA莫属!

记得20年前刚学VBA的时候,当时资料很少,只能看源码自己摸索,确实很难。二十年过去了为了防止正在学习VBA的朋友重蹈我以前的经历,我根据自己多年使用VBA的实践经验,推出了七本VBA专题教程。

第一套:VBA代码解答,是对VBA中各个知识点的讲解。教程共147篇,涵盖大部分VBA知识点;本套教程当前版本为修订版第二版,程序文件均通过了32位和64位OFFICE系统的测试。

第二套:VBA数据库解决方案数据库是数据处理的专业工具教程详细介绍了使用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员学习。本套教程目前提供修改后的第一版教程,程序文件已经在32位和64位OFFICE系统上通过了测试。

第三套:VBA表格和字典解决方案表格和字典是VBA的精髓。字典是提高VBA代码水平的有效手段,值得深入学习,是初中级人员提高代码水平的手段。本套教程当前版本为修订版第一版,程序文件在32位和64位OFFICE系统上均通过了测试。

第四套:VBA代码解答视频是专门针对初学者的视频讲解,可以帮助你快速上手,更快掌握这项技能。本套教程是第一套教程(修订版)的视频讲解,视频更容易让人接受。

第五套:VBA中类的解读与利用这是一篇进阶教程,讲解了类的虚无和实体程度,虽然类的使用较少,但认真学习可以促进自己VBA理论的提高。这套教程的理解主要是让读者了解和理解一种佛教哲学。本套教程当前版本为修订版第一版,程序文件在32位和64位OFFICE系统上均通过了测试。

第六套教程:VBA获取与处理这是一套范围更广、实用性更强的进阶教程。教程共二十个主题,包括:跨应用信息获取、随机信息利用、电子邮件发送、VBA互联网数据抓取、VBA延迟操作、剪贴板应用、Split功能扩展、工作表信息与其他应用交互、FSO的利用。对象,获取工作表和文件夹信息,获取图形信息,自定义工作表信息函数等。程序文件通过了32位和64位OFFICE系统测试。

第七套教程:用VBA进行EXCEL应用本教程共分三册,从创建宏、对话框、工作簿和工作表、单元格对象等基础知识开始。错误处理、字符串操作、日期时间、事件、表格应用、操作程序等等,直到控件和表单对象的应用都给我们讲解清楚,提高我们的EXCEL水平。

以上教程的学习是:7→1(或4)→3→2→6→5。第四套是第一套的视频讲解,所以选择第一套和第四套中的一套即可。有需要的朋友可以W:VBA6337

本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。

相关推荐