先篩選b欄為"小 計"的部分,刪除,worksheet.showalldata取得b欄最後有值的儲存格range.end、range.find或列號,前述以range.row,如連續資料的話,工作表函數counta或countc欄數字插入"小 計"的列,先以變數a記錄最後有值的列號,再以迴圈反序step -1方式(變數b)。判斷當a欄不為空字串""時取消合併儲存格range.unmerge變數a用於:rows.insert、b欄儲存格"小 計"的寫入、和c欄儲存格加總(範圍為變數b至變數a),變數a可能有需要+1a欄類別的合併儲存格range.merge(範圍為變數b至變數a+1)變數b則再以變數-1的值定位以上回文是假設類別上有可能在新增後有可能沒有小計,如果都有小計的話,迴圈,判斷或range.find,b欄為儲存格"小 計"的列號(變數a),再range.end往上看a欄有資料的列號(變數b),小計就加總起迄變數a-1至變數b的範圍要用已有功能range.subtotal的話,新增個輔助欄如
https://i.imgur.com/Rm0AmgB.jpgrange.subtotal group by第4欄,function以加總xlsum,totallist以第3欄array格式可能會和要的不同,再調整。移除以range.removesubtotal