朋友们好,今日给大家继续讲解VBA数组与字典解决方案的第17讲,数组大小的扩充问题。这一讲的内容相对比较简单,在之前的章节中讲了数组与数组的计算规律,也是利用了数组的扩展原理。
其实,两个数组计算时,参与计算的两个数组得具有相同的维数,对于行列数不匹配的数组,在计算时Excel会将数组对象进行扩展,以符合计算需要的维数。每一个参与计算的数组的行数必须与行数最大的数组的行数相同,列数必须与列数最大的数组的列数相同。然后再参与计算。对于行数和列数少的数组匹配到和最大行数的过程就是数组的扩展。这也是数组扩展的意义所在。
实例一:公式=SUM({100,200,300,400}*100)里,第一个参数{100,200,300,400}是一行四列的数组,第二个参数不是数组,只是一个数值,为了让第二个数值能与第一个数组进行运算,这时,Excel会自动将第二参数的100扩充成一个一行四列的数组{100,100,100,100}与第一参数匹配。所以,SUM({100,200,300,400}*100) 最后是使用SUM({100,200,300,400}*{100,100,100,100}) 进行计算,得到的结果有了一一对应的元素相运算是100*100,200*100,300*100,400*100的和。那么将数值100匹配成{100,100,100,100}就是一个数组的扩展的过程。
实例一对于数值的扩展如下面的截图:
实例二:={100;200;300;400}+{100,200}的第一个参数{100;200;300;400}是一个四行一列的数组, {100,200}是一个一行二列的数组,在计算时,Excel会将第一个数组自动扩充为一个四行二列的数组{100,100;200,200;300,300;400,400},也会将第二个数组扩充为一个四行二列的数组{100,200;100,200;100,200;100,200},所以={100;200;300;400}+{100,200}这个公式最后是使用公式={100,100;200,200;300,300;400,400}+{100,200;100,200;100,200;100,200}进行计算。公式最后返回的数组也是一个四行二列的数组。
好了,数组的扩展问题就讲到这里,工作表数组的系列专题到这章就全部结束了。
今日内容回向:
1 什么是数组的扩展?
2 数组的扩展的意义是什么?