作者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/cn.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