作者bestboy5612 (阿國)
看板Office
標題[問題] VBA數值加總合計問題
時間Sun May 26 03:19:49 2019
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:excel
版本:2013
檔案範例:
https://i.imgur.com/4PnZdml.jpg
A欄為物品類別,B欄為物品細目,C欄為當日使用量,我要作各類別物品使用量的小計。
C欄各物品的使用量是已知數據,但每日的物品類別跟細目可能會有增減,例如明天可能
沒有西瓜,後天可能又多了D類(例如電腦、椅子),因此每日的列數會不一樣,但都要按
物品類別作小計。
跪求高手幫忙解惑,C欄小計的vba該怎麼寫?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.9.252
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1558811991.A.B03.html
1F:→ soyoso: 先篩選b欄為"小 計"的部分,刪除,worksheet. 05/26 11:20
2F:→ soyoso: showalldata 05/26 11:20
3F:→ soyoso: 取得b欄最後有值的儲存格range.end、range.find或列號,前 05/26 11:20
4F:→ soyoso: 述以range.row,如連續資料的話,工作表函數counta或count 05/26 11:20
5F:→ soyoso: c欄數字 05/26 11:20
6F:→ soyoso: 插入"小 計"的列,先以變數a記錄最後有值的列號,再以 05/26 11:20
7F:→ soyoso: 迴圈反序step -1方式(變數b)。判斷當a欄不為空字串""時 05/26 11:20
8F:→ soyoso: 取消合併儲存格range.unmerge 05/26 11:20
9F:→ soyoso: 變數a用於:rows.insert、b欄儲存格"小 計"的寫入、和c 05/26 11:20
10F:→ soyoso: 欄儲存格加總(範圍為變數b至變數a),變數a可能有需要+1 05/26 11:20
11F:→ soyoso: a欄類別的合併儲存格range.merge(範圍為變數b至變數a+1) 05/26 11:20
12F:→ soyoso: 變數b則再以變數-1的值定位 05/26 11:20
13F:→ soyoso: 以上回文是假設類別上有可能在新增後有可能沒有小計,如果 05/26 11:30
14F:→ soyoso: 都有小計的話,迴圈,判斷或range.find,b欄為儲存格"小 05/26 11:30
15F:→ soyoso: 計"的列號(變數a),再range.end往上看a欄有資料的列號( 05/26 11:30
16F:→ soyoso: 變數b),小計就加總起迄變數a-1至變數b的範圍 05/26 11:30
17F:→ soyoso: 要用已有功能range.subtotal的話,新增個輔助欄 05/26 11:38
19F:→ soyoso: range.subtotal group by第4欄,function以加總xlsum, 05/26 11:38
20F:→ soyoso: totallist以第3欄array 05/26 11:38
21F:→ soyoso: 格式可能會和要的不同,再調整。移除以range. 05/26 11:38
22F:→ soyoso: removesubtotal 05/26 11:38
23F:→ bestboy5612: 非常感謝大大的回覆,等等來試試看 05/26 12:47