news 2026/7/5 5:30:59

数组与字典解决方案第二十九讲 数组的创建方法小结及回填的注意事项

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组与字典解决方案第二十九讲 数组的创建方法小结及回填的注意事项

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

这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:数组与字典解决方案第二十九讲 数组的创建方法小结及回填的注意事项

【分享成果,随喜正能量】心静者高,高者俯瞰世界;心和者仁,仁者包容万物;心慈者深,深者淡对冷暖;心慧者安,安者笑对人生。

第二十九讲 数组的创建方法小结及回填的注意事项

大家好,我们今日继续VBA数组与字典解决方案的讲解,在最近的数组讲解中讲了很多基本的操作和概念,那么VBA数组有哪些创建的方法呢?数组和工作表又是如何对应呢?

1 使用Array函数创建数组

这种方法很简单,如:arr = Array("张一", "徐一", "陈一", "王一")

2 使用Split函数创建数组

Split的作用是把一个文本,根据指定的分隔符,建立一个数组。感觉就有点像EXCEL中的基础操作中的“分列”。不同的是“分列”操作是将一个单元格的文本按指定的分隔符分开,存放在同行的多个单元格里,而Split的作用是将一个文本(也可以是存放在单元格里的)按指定的分隔符分开,存放在一个数组变量里。

如:arr = Split("张一,徐一,陈一,王一,许一,张二,陈二,张三,徐二,张四", ",")

  • 特别注意点:用Split把文本转换成数组,索引号总是从0开始。不管你是否使用了Option Base语句,这点和Array不同。

3 通过Range赋值创建数组

如下面的代码:创建了数组并赋值。

Dim arr(1 To 29)

For i = 1 To 29

arr(i) = Cells(i, 1)

Next

4 直接等于某单元格区域

这个很简单,直接数组名等于单元格区域就可以了。比如想把A1:A100单元格的值给数组arr,代码还可以简单写为:arr = [a1:a20] 。

那么这里的arr是什么类型的数组呢?大家要注意,这个数组是二维数组

如下代码:

Sub MyNZsz_29() '第29讲 VBA数组的创建方法总结及数组回填到工作表的注意事项

arr = [a1:a20]

Sheets("29").Select

r = 2

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

Cells(r, 3) = arr(t)

r = r + 1

Next

End Sub

代码截图:

在运行是会报错:

我们修正代码:

Sub MyNZsz_29() '第29讲 VBA数组的创建方法总结及数组回填到工作表的注意事项

arr = [a1:a20]

Sheets("29").Select

r = 2

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

Cells(r, 3) = arr(t, 1)

r = r + 1

Next

End Sub

代码截图:

运行:

5 数组回填到工作表的特别注意点

1) 一维数组写入单元格区域时,这个单元格必须是水平方向的,也就是一个一行多列的单元格区域,如果想写入垂直区域,必须使用工作表的Transpose函数转换一下;

2) 和工作表的多单元格数组公式一样,数组写入单元格时,单元格的区域必须和数组的大小一致。

今日内容回向:

1 数组的常见创建方法有哪些?

2 如何理解工作赋值给数组是一个二维数组?

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

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

告别混乱桌面:NoFences开源分区工具终极指南

告别混乱桌面:NoFences开源分区工具终极指南 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为Windows桌面上杂乱无章的图标而烦恼吗?NoFences是一…

作者头像 李华
网站建设 2026/7/5 5:29:42

QQ空间备份神器:3分钟永久保存你的青春记忆

QQ空间备份神器:3分钟永久保存你的青春记忆 【免费下载链接】QZoneExport QQ空间导出助手,用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件,便于迁移与保存 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/7/5 5:28:00

2026 储水式小厨宝对比,飞利浦哈登、美的、海尔谁更适合厨房

冬天走进厨房,打开水龙头等热水的那几十秒,刺骨的冷水往往让人对洗碗洗菜心生抵触。很多家庭并不是没有热水器,而是热水管路太长,远端的热水迟迟送不过来。这时候,安装在水槽下方的储水式小厨宝就成了一个很实在的解决…

作者头像 李华
网站建设 2026/7/5 5:27:43

如何用Obsidian模板构建高效Zettelkasten知识体系:新手终极指南

如何用Obsidian模板构建高效Zettelkasten知识体系:新手终极指南 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: https://gitcode.com/gh_mi…

作者头像 李华