[問題] VBA數值加總合計問題

看板Office作者 (阿國)時間5年前 (2019/05/26 03:19), 編輯推噓0(0023)
留言23則, 2人參與, 5年前最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體:excel 版本:2013 檔案範例: https://i.imgur.com/4PnZdml.jpg
A欄為物品類別,B欄為物品細目,C欄為當日使用量,我要作各類別物品使用量的小計。 C欄各物品的使用量是已知數據,但每日的物品類別跟細目可能會有增減,例如明天可能 沒有西瓜,後天可能又多了D類(例如電腦、椅子),因此每日的列數會不一樣,但都要按 物品類別作小計。 跪求高手幫忙解惑,C欄小計的vba該怎麼寫? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.9.252 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1558811991.A.B03.html

05/26 11:20, 5年前 , 1F
先篩選b欄為"小  計"的部分,刪除,worksheet.
05/26 11:20, 1F

05/26 11:20, 5年前 , 2F
showalldata
05/26 11:20, 2F

05/26 11:20, 5年前 , 3F
取得b欄最後有值的儲存格range.end、range.find或列號,前
05/26 11:20, 3F

05/26 11:20, 5年前 , 4F
述以range.row,如連續資料的話,工作表函數counta或count
05/26 11:20, 4F

05/26 11:20, 5年前 , 5F
c欄數字
05/26 11:20, 5F

05/26 11:20, 5年前 , 6F
插入"小  計"的列,先以變數a記錄最後有值的列號,再以
05/26 11:20, 6F

05/26 11:20, 5年前 , 7F
迴圈反序step -1方式(變數b)。判斷當a欄不為空字串""時
05/26 11:20, 7F

05/26 11:20, 5年前 , 8F
取消合併儲存格range.unmerge
05/26 11:20, 8F

05/26 11:20, 5年前 , 9F
變數a用於:rows.insert、b欄儲存格"小  計"的寫入、和c
05/26 11:20, 9F

05/26 11:20, 5年前 , 10F
欄儲存格加總(範圍為變數b至變數a),變數a可能有需要+1
05/26 11:20, 10F

05/26 11:20, 5年前 , 11F
a欄類別的合併儲存格range.merge(範圍為變數b至變數a+1)
05/26 11:20, 11F

05/26 11:20, 5年前 , 12F
變數b則再以變數-1的值定位
05/26 11:20, 12F

05/26 11:30, 5年前 , 13F
以上回文是假設類別上有可能在新增後有可能沒有小計,如果
05/26 11:30, 13F

05/26 11:30, 5年前 , 14F
都有小計的話,迴圈,判斷或range.find,b欄為儲存格"小
05/26 11:30, 14F

05/26 11:30, 5年前 , 15F
 計"的列號(變數a),再range.end往上看a欄有資料的列號(
05/26 11:30, 15F

05/26 11:30, 5年前 , 16F
變數b),小計就加總起迄變數a-1至變數b的範圍
05/26 11:30, 16F

05/26 11:38, 5年前 , 17F
要用已有功能range.subtotal的話,新增個輔助欄
05/26 11:38, 17F

05/26 11:38, 5年前 , 18F

05/26 11:38, 5年前 , 19F
range.subtotal group by第4欄,function以加總xlsum,
05/26 11:38, 19F

05/26 11:38, 5年前 , 20F
totallist以第3欄array
05/26 11:38, 20F

05/26 11:38, 5年前 , 21F
格式可能會和要的不同,再調整。移除以range.
05/26 11:38, 21F

05/26 11:38, 5年前 , 22F
removesubtotal
05/26 11:38, 22F

05/26 12:47, 5年前 , 23F
非常感謝大大的回覆,等等來試試看
05/26 12:47, 23F
文章代碼(AID): #1SwPLNi3 (Office)