有下面以個問題,如圖:
現在有A1到A21有21個數據。有如下三個問題:
問題1:每五行找出最大值,結果如B列。
問題2:每五行找出最大值,結果如C列。
問題3:每五行找出最大值結果總和如D列。
先看兩個已經寫好的代碼:
代碼一:常規的解決方案
代碼二:數組的解決方案
針對問題,對代碼進行分析:
1:需要求出最大值,採用之前《Excel VBA 數組的最值、求和、個數統計》提到的max函數
2:每五行分成一組。兩個代碼採用了相同的方式。
Cells(i, 1).Resize(5)
Resize屬性表示調整指定區域的帶下,其語法如下:
expression.Resize(RowSize, ColumnSize)
參數expression是必需的,返回要調整大小的Range 對象
參數RowSize是可選的,新區域中的行數。如果省略該參數,則該區域中的行數保持不變。
參數ColumnSize是可選的,新區域中的列數。如果省略該參數。則該區域中的列數保持不變。
本例Resize(5),省略了ColumnSize參數,表示5列數據
3:用if函數,找出與最大值相同的數值,並在B列排出。
4:把得到的最大致,按先後循序,直接排在C列
5:把C列最大用sum函數進行求和。
[d1] = Application.WorksheetFunction.Sum(Range("c:c"))
[d1] 為range("D1")的簡寫方式。
sum用來求和。
Range("c:c")表示C列
閱讀更多 浮雲Excel分享 的文章