微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

Excel VBA 实例(29) – 快速实现合并单元格的填充

Excel VBA 实例 永恒君 2430℃ 0评论
Excel表格里经常会出现合并的单元格,如果要对这些合并单元格的填充汇总的值,该怎么做?如下图,需要将A、B、C零部件的重量汇总,填入“单重”单元格(N2),然后将数量*单重的结果填入总重(O2)。

观察一下可以看到,A、B、C的零部件个数不一样,也就是合并后的汇总单元格行数不一样,如果直接用填充单元格的方法是行不通的。

这里给大家分享两个解决的方法。

方法一:Ctrl+Enter

选中需要汇总的合并单元格(N2:N11),然后在公式栏里输入第一个合并单元格的公式(=SUM(I2:I5)),然后按Ctrl+Enter。总重的计算也是一样的。

方法二:VBA

原理和方法一基本相似,只是用代码表示出来了而已。

Row = [I2].End(xlDown).Row
Range("B2:B" & Row).Copy
Range("N2:N" & Row).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("N2:N" & Row).FormulaR1C1 = "=SUM(OFFSET(RC[-5],0,0,MergeRowsCount(RC[-12])))"
Range("O2:O" & Row).FormulaR1C1 = "=RC[-1]*RC[-4]"

其中MergeRowsCount()是自定义的函数,目的是用来计算合并单元格的行数。

MergeRowsCount = Rng.MergeArea.Rows.Count

效果如下,使用VBA有个好处就是,如果后面还有新增的内容需要汇总,直接一键即可实现。方法一的话则需要重新按Ctrl+Enter进行计算。

大家如果觉得实用,点个“在看”并分享给更多的朋友吧!

你可能还会想看:

Excel如何将数据逐一拆分成单行?

Excel VBA 实例(28) - 批量生成word报告

Excel VBA 实例(27) – 一键按列分类并保存单独文件

欢迎交流!

微信公众号:永恒君的百宝箱
个人博客:www.yhjbox.com

转载请注明:永恒君的百宝箱 » Excel VBA 实例(29) – 快速实现合并单元格的填充

喜欢 (5)
发表我的评论
取消评论
表情