如何用Excel VBA实现选中列A区域后合并列B对应区域并求和
可以通过Excel VBA实现该需求,你现有代码的问题是求和公式仅引用了合并区域首个单元格对应的A列值,没有覆盖你选中的所有A列单元格,修正后的代码如下:
Sub Macro6() ' ' Macro6 Macro ' ' Keyboard Shortcut: Ctrl+l ' ' 先校验选中区域是否在A列,避免误操作 If Selection.Column <> 1 Then MsgBox "请先在A列选中需要统计的单元格区域" Exit Sub End If ' 提前存储选中的A列区域,避免后续选区跳转后丢失范围 Dim selectRng As Range Set selectRng = Selection ' 偏移到B列对应区域执行合并 selectRng.Offset(0, 1).Select Selection.Merge With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext End With ' 写入求和公式,引用最初选中的A列区域 ActiveCell.Formula = "=SUM(" & selectRng.Address & ")" End Sub
修改说明
- 新增了选中区域校验逻辑,仅当你选中A列单元格时才会执行宏,避免误操作触发异常
- 提前存储了选中的A列区域,避免后续切换选区后丢失原始统计范围
- 修复了原代码中
.ShrinkToFit = Falsex的笔误,移除了多余的末尾字符x - 求和公式改为引用你最初选中的所有A列单元格,合并后会自动计算该区域的总和
内容的提问来源于stack exchange,提问作者user17506211
相关产品推荐
相关产品推荐

