Excel VBA 對一列數據進行分組並求最大值及最大值的和

有下面以個問題,如圖:

Excel VBA 對一列數據進行分組並求最大值及最大值的和

現在有A1到A21有21個數據。有如下三個問題:

問題1:每五行找出最大值,結果如B列。

問題2:每五行找出最大值,結果如C列。

問題3:每五行找出最大值結果總和如D列。

先看兩個已經寫好的代碼:

代碼一:常規的解決方案

Excel VBA 對一列數據進行分組並求最大值及最大值的和

代碼二:數組的解決方案

Excel VBA 對一列數據進行分組並求最大值及最大值的和

針對問題,對代碼進行分析:

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列


分享到:


相關文章: