i 和 j 沒放到循環語句中。
下面給妳演示個不用循環就可以計算出來的簡單例子,希望妳能從中舉壹反三。
設活動工作表中有如下格式的數據,其中 D6:D7 為存放代碼計算出來的結果區域
參考 VBA 代碼
Public?Sub?Sum12Num()With?ActiveSheet.Cells(6,?4)
.FormulaArray?=?"=SUM(OFFSET(INDEX(2:2,,MATCH(TRUE,2:2<>0,0)),,,,12))"
.AutoFill?.Resize(2)
.Value2?=?.Value2
End?With
End?Sub
關鍵技術分析
公式數組
=SUM(OFFSET(INDEX(2:2,,MATCH(TRUE,2:2<>0,0)),,,,12))Step1
用 MATCH 函數查找第二行首個不為 0 的單元格所在的列索引號。
返回 >> 5
Step2
用 INDEX 繼續在第二行中查找首個不為 0 的單元格,其中第三個參數使用了 Step1 中返回的列索引號。
返回 >> 對 E5 單元格的引用
Step3 >> 用 OFFSET 函數對 Step2 返回的單元格引用(E5)往右調整 12 個單元格。
返回 >> E2:P2
Step4 >> 用 SUM 函數對 Step3 返回的 12 個單元格區域求和
程序運行動畫效果