有下面以个问题,如图:
现在有A1到A21有21个数据。有如下三个问题:
问题1:每五行找出最大值,结果如B列。
问题2:每五行找出最大值,结果如C列。
问题3:每五行找出最大值结果总和如D列。
先看两个已经写好的代码:
代码一:常规的解决方案
代码二:数组的解决方案
针对问题,对代码进行分析:
1:需要求出最大值,采用之前《Excel VBA 数组的最值、求和、个数统计》提到的max函数
2:每五行分成一组。两个代码采用了相同的方式。
Cells(i, 1).Resize(5)
Resize属性表示调整指定区域的带下,其语法如下:
ex(RowSize, ColumnSize)
参数expression是必需的,返回要调整大小的Range 对象
参数RowSize是可选的,新区域中的行数。如果省略该参数,则该区域中的行数保持不变。
参数ColumnSize是可选的,新区域中的列数。如果省略该参数。则该区域中的列数保持不变。
本例Resize(5),省略了ColumnSize参数,表示5列数据
3:用if函数,找出与最大值相同的数值,并在B列排出。
4:把得到的最大致,按先后循序,直接排在C列
5:把C列最大用sum函数进行求和。
[d1] = A(Range("c:c"))
[d1] 为range("D1")的简写方式。
sum用来求和。
Range("c:c")表示C列