news 2026/4/17 19:35:58

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

作者头像

张小明

前端开发工程师

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/4/13 22:02:51

Iwara视频下载工具:零基础也能轻松搞定

你是不是也遇到过这样的烦恼?在Iwara上看到超级精彩的视频,想保存下来反复欣赏,却发现根本没有下载按钮?别担心,今天我要给你介绍一个神奇的工具——IwaraDownloadTool,这款免费的视频下载工具能让你轻松搞…

作者头像 李华
网站建设 2026/3/31 11:39:53

ComfyUI智能管理助手:重塑AI绘画工作流新体验

ComfyUI智能管理助手:重塑AI绘画工作流新体验 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 在AI绘画创作的世界里,你是否曾经因为插件安装的复杂流程而望而却步?ComfyUI-Manager作…

作者头像 李华
网站建设 2026/4/15 14:07:59

Qwen3-VL支持Typora风格写作?Markdown富文本智能补全尝试

Qwen3-VL支持Typora风格写作?Markdown富文本智能补全尝试 在技术写作和数字内容创作日益依赖结构化表达的今天,一个常见的痛点浮现出来:我们手握大量视觉素材——截图、草图、设计稿,却仍需逐字敲出对应的说明文档。无论是撰写一篇…

作者头像 李华
网站建设 2026/4/1 5:19:21

iOS微信红包助手全方位使用指南

iOS微信红包助手全方位使用指南 【免费下载链接】WeChatRedEnvelopesHelper iOS版微信抢红包插件,支持后台抢红包 项目地址: https://gitcode.com/gh_mirrors/we/WeChatRedEnvelopesHelper 在当今社交网络日益发达的背景下,微信红包已成为人们日常互动的重要…

作者头像 李华
网站建设 2026/4/17 17:36:39

3步解锁小米运动自动刷步:告别手动记录的智能解决方案

3步解锁小米运动自动刷步:告别手动记录的智能解决方案 【免费下载链接】mimotion 小米运动刷步数(微信支付宝)支持邮箱登录 项目地址: https://gitcode.com/gh_mirrors/mimo/mimotion 你是否曾经因为工作繁忙而无法完成每日运动目标&a…

作者头像 李华
网站建设 2026/4/11 12:43:09

AUTOSAR架构图解析:Vector工具链集成完整指南

深入理解AUTOSAR架构与Vector工具链:从系统建模到代码生成的实战解析当汽车软件变得比手机还复杂,我们该如何驾驭?你有没有想过,一辆高端智能电动车里的ECU(电子控制单元)数量可能超过120个?其车…

作者头像 李华