news 2026/6/25 1:46:38

数组与字典解决方案第三十三讲:工作表函数的应用及内存释放

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组与字典解决方案第三十三讲:工作表函数的应用及内存释放

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

这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:数组与字典解决方案第三十三讲:数组中工作表函数的应用及内存的重新释放

【分享成果,随喜正能量】3大富在命,小富在勤。虽然光靠努力不会让你大富大贵,但也可以让你过的比的不差。人生没有摆渡人,只有自渡者。别人可以给你帮助,但无法替你承担。

第三十三讲 数组中工作表函数的应用及内存的重新释放

今日讲解VBA数组与字典解决方案的第33讲内容,数组中工作表函数的应用和数组内存的释放。

1 数组中工作表函数的利用

在数组中可以利用的函数我们之前讲过了JOIN、FILTER等,其实其他的一些工作表函数在数组中也是可以用的。

如:max 、min 、avervge 在数组中应用时结合工作表的区域,更加的方便,我们看下面的实例:

arr1 = Range("A1:A10") '把单元格区域A1:A10的值装入数组arr1

MsgBox Application.Max(arr1) '求数组的最大值

MsgBox Application.Min(arr1) '求数组的最小值

MsgBox Application.Average(arr1) '求数组的平均数

上述代码中首先将A1:A10的单元格区域赋值给数组arr1,这时候我们利用工作表函数的求最大值、最小值、平均数函数来求数组的最大值、最小值、平均数一样是可行的。

注意这时的函数前面要加上Application,表示是工作表函数。

2 数组所占用内存的释放

下面讲数组和内存的释放,我们清楚,数组之所以运行的速度快,是因为数组在内存中要预先占用一定的空间,这样的效果会造成内存的浪费,我们在程序的运行时,一个数组完成了它的历史使命了,但他的内存还在占用,会影响到后续程序的运行。

虽然我们在定义动态数组时就考虑到了上述的问题,可以让动态数组不必事先占用大量的内存备用,但是,在这个数组任务完成后同样也存在着上述的问题。

那么,有什么办法让数组在完成自己的程序任务后,释放内存呢?有。这就是erase 语句的作用了。erase语句对于固定的数组,将重新初始化每个元素,这时是保留元素个数的;如下面的表格提供的初始化的意义:

而对于动态数组erase语句将清空所用的元素,包括维数,在下次应用前要从新定义此变量;

我们看下面的代码:

Sub MyNZsz_33() '第33讲 数组中工作表函数的应用及数组内存的重新释放

Sheets("33").Select

arr1 = Range("A1:A10") '把单元格区域A1:A10的值装入数组arr1

MsgBox Application.Max(arr1) '求数组的最大值

MsgBox Application.Min(arr1) '求数组的最小值

MsgBox Application.Average(arr1) '求数组的平均数

Dim NumArray(10) As Integer ' Integer 数组。

Dim StrVarArray(10) As String '变长的 String 数组。

Dim StrFixArray(10) As String * 10 '定长的 String 数组。

Dim VarArray(10) As Variant 'Variant 数组。

Dim DynamicArray() As Integer '动态数组。

ReDim DynamicArray(10) '分配存储空间。

Erase NumArray '将每个元素设为 0。

Erase StrVarArray '将每个元素设为 '零长度字符串 ("")。

Erase StrFixArray '将每个元素设为 0。

Erase VarArray '将每个元素设为 Empty。

Erase DynamicArray '释放数组所用内存。

Erase arr1

arr1 = 1

MsgBox arr1

End Sub

代码截图:

看看代码的运行:

今日内容回向:

1 数组中工作表函数是如何利用的?

2 数组中如何重新释放内存?

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 5:08:42

WE Learn网课助手完全攻略:3步开启智能学习新时代

WE Learn网课助手完全攻略:3步开启智能学习新时代 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案;支持班级测试;自动答题;刷时长;基于生成式AI(ChatGPT)的答案生成 项目地址: https://gitcode.com/gh…

作者头像 李华
网站建设 2026/6/15 18:18:27

Keil使用教程:C51与MDK版本差异及选择建议

Keil实战指南:C51与MDK到底怎么选?嵌入式工程师避坑全解析你有没有遇到过这种情况:项目刚启动,团队信心满满地用Keil搭环境,结果发现编译器不支持芯片、调试接口冲突、代码跑飞了查半天——最后才发现,压根…

作者头像 李华
网站建设 2026/6/4 23:05:41

Qwen3-VL调用HuggingFace模型:跨平台模型资源共享方案

Qwen3-VL调用HuggingFace模型:跨平台模型资源共享方案 在当前多模态大模型快速演进的背景下,开发者面临的不再是“有没有模型可用”,而是“如何高效地使用和切换不同模型”。尤其是在资源受限的本地环境中,动辄数十GB的模型权重文…

作者头像 李华
网站建设 2026/6/19 14:39:28

WE Learn智能助手完整使用指南:免费快速入门技巧

WE Learn智能助手完整使用指南:免费快速入门技巧 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案;支持班级测试;自动答题;刷时长;基于生成式AI(ChatGPT)的答案生成 项目地址: https://gitcode.com/gh_…

作者头像 李华
网站建设 2026/6/1 19:47:57

如何快速解密QQ音乐文件:qmcdump完整操作指南

如何快速解密QQ音乐文件:qmcdump完整操作指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否遇到过Q…

作者头像 李华
网站建设 2026/6/10 16:21:37

Qwen3-VL金融报告解析:财报截图提取关键财务指标与趋势分析

Qwen3-VL金融报告解析:财报截图提取关键财务指标与趋势分析 在金融研究一线,分析师每天面对成百上千页的PDF年报、扫描件和图表。打开文件、翻找利润表、手动录入数据——这套流程重复了二十年,效率却始终停留在“人肉爬虫”阶段。直到现在&a…

作者头像 李华