《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。
这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA字典与数组第八讲:数组及数组公式结果的制约性和集合性
【分享成果,随喜正能量】如果想要远离痛苦,就要断除烦恼、停止造业。断除烦恼、停止造业的方法就是佛法。世界上很多宗教、教派提出各种各样的主张,都是停止痛苦、远离轮回的方法,有些正确,有些不正确,有些究竟,有些不究竟。所有这些方法当然有其作用和存在的价值,但唯有佛教的真理可以彻底解决烦恼、让人获得究竟的解脱。。
第九讲数组及数组公式结果的制约性和集合性(一)
今日继续讲解VBA数组与字典解决方案,今日讲解第9讲,在前面的几篇关于数组的专题中,我先后讲了数组的基本概念,基本的应用,并结合实际的应用的把一些有用的内容讲解给了各位朋友,相信很多朋友对数组的应用已经有了较为深入认识,这对于大家的实际应用是十分有用的。今日给大家讲数组及数组公式结果的制约性和集合性的第一部分。
1数组引用大小的制约性
我们先看上面的截图,在C5中的录入公式为“=IF(C2:C3="Mary",ROW(D2:D3))”(数组公式),你知道它的返回值为什么是FALSE吗?这里要理解一个概念,数组的大小的制约性。下面我慢慢的讲解。
对于数组“=IF(C2:C3="Mary",ROW(D2:D3))”聪明的你可能已经想到这种类型的数组公式返回的是一个结果集,这个结果集的大小与操作对象的大小是一致的,在这里操作对象为C2:C3和D2:D3,因此返回值应该为两个元素。
就样结果就出来了,由于C2=”John”,不满足条件,因此应该返回IF()函数的第三个参数值,但这里无第三个参数,所以系统返回FALSE;也就是说上面的截图中C5的返回值为FALSE.
对于数组大小的强制性来说:上面的数组“=IF(C2:C3="Mary",ROW(D2:D3))”返回值应该为两个,那么第二个值应该在哪里呢?我们继续考虑数组的执行过程:由于C3=”Mary”,满足条件,因此返回第二个参数值,即ROW(D2:D3),而C3对应的是D3,所以返回值应该为3。
这个值应该在哪里呢?我们把C6的单元格也选择上录入数组公式:结果如下:
这里需要注意的是C5,和C6的公式是一致的,也就是说C5和C6共同构成了数组的单元,两个元素一个是”FALSE”一个是”3”。
在上面的讲解中,我提到了在C5和C6中录入数组公式,不知道大家是否还知道数组公式的录入方法:请选择C5:C6,输入“=IF(C2:C3="Mary",ROW(D2:D3))”,按“Ctrl+Shift+Enter”。这是数组公式的录入方法,要注意的是此大小要与操作的数组结果大小相一致。
2数组公式的集合性
在上面的讨论中我们反复的讲了数组的制约性特性,这里再讨论一下数组的集合性。因为数组是多个元素的集合,当然数组具有集合性。我们看下面的截图:在E5中录入下面的公式: “=MIN(IF(C2:C3="Mary",ROW(D2:D3)))”,按“Ctrl+Shift+Enter”,看结果。
这个结果当然就是在求MIN(FALSE,3)的值。在运算中FALSE的值是0。0和3的最小值是0,为什么返回的结果是3呢?好了今日的这个问题大家可以先想一想,我在下面的数组专题中讲解。
这里要给大家说明的是数组返回的结果是一个集合,这个集合的元素应该是符合集合特征的元素。
今日内容回向:
1 什么是数组的制约性?
2 什么是数组的集合性?
3 上面的最小值为什么是3,而不是0呢?读者是如何理解的?
我多年的VBA实践经验,全部浓缩在以下教程中: