暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

工作表中数组的应用

VBA语言专家 2021-06-28
396
【分享成果,随喜正能量】任何过程,不管多难,都会被成功渡过,困难过后,剩下的便都是好运,吉祥运,顺利运。学习亦如此。
《VBA数组与字典方案》教程是我推出第三套教程,目前已经是第一版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。七、三、一套教程掌握后,可以解决大多数工作中遇到的实际问题。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第7讲:工作表中数组的应用。

第七讲  工作表数据计算时为什么要采用数组公式(一)

今日继续讲解VBA数组与字典解决方案第7讲,在前几讲的数组应用中我们深入地讲解了工作表数组和数组公式,以及数组维数扩展的意义。那么,有的朋友会问了:这么费事,为什么要引入数组公式呢?换句话说,引用数组公式有什么好处呢?在这一节中我要慢慢地给大家讲解.
首先我们回忆一下小时候上学时有过这么一道题:求1 到100 的和。当然也可以是1000、10000 甚至更多。怎么解决这类问题呢?
问题分析:求1 到100 的和,答案是5050,但如果采用Excel计算,你必须要告诉它如何计算,计算从1 到100 的和,实际上就是计算1+2+3+4+……+98+99+100,好了,答案出来了。

1  最原始的处理方案

在编辑栏中输入“=sum(1+2+3+4+……+98+99+100)”。相信聪明的你一定对此答案不满意,虽然能得到正确的结果,但很明显不是最好的方法。不仅需要录入的时候小心应对,发费的时间也是不能我们忍受的。
那么有没有更好的办法呢?

2  函数公式的利用

要想得到1 到100 的数列,最简单的方法就是使用Row()函数。熟悉Row()函数的朋友一定会恍然大悟:在A1 单元格中输入“=Row()”,使用填充柄填充至A100,看到什么结果?这时每一个单元格中值就是其对应的行数。也就是说Row()表示当前行。

我们先来学习一下ROW()函数;ROW函数:是函数中的一种,作用是返回一个引用的行号。
语法ROW(reference)
参数:Reference 为需要得到其行号的单元格或单元格区域。
特别注意:
1)  如果省略 reference,则假定是对函数 ROW 所在单元格的引用。
2)  如果 reference 为一个单元格区域,并且函数 ROW 作为垂直数组输入,则函数 ROW 将 reference 的行号以垂直数组的形式返回。
3)  Reference 不能引用多个区域。
下面我们继续讲解刚才提到的问题,当填充完A1到A100后再求和,求得到了1 到100 的和。
这个方法是不是最好的方法呢?当然不是,我们再看下面方法三

3  数组公式的利用

我们可以用Row(1:100)就表示一个数组,其值便是包含第一到第一百行的行号,即1、2、3、……、98、99、100 这些数值,现在我们就把这个数组应用到公式中。
在工作表的任意一个单元格中输入“=sum(Row(1:100))”,然后按Ctrl+Shift+Enter 组合键,你会惊喜的发现,我们要的结果出现了。
很容易得出结论:上述的三个方案中第三个是最好的方法。也就是说,引入了数组公式后问题的解决变得非常简单。


今日内容回向:
1    引入数组公式后有什么好处?
2    数组公式是如何使问题变得简单的?
3    你是否理解了row()的含义?






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

第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解
第1套教程(共三册):《VBA代码解决方案》是入门后的提高教程
第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)
第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解
第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解
第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用
第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解
第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用

上述教程的学习顺序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8







文章转载自VBA语言专家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论