Excel VBA需求:在Mode列指定值最后一行后插入行并计算总计
Excel VBA:在指定条件行后插入总计行
现有实现
我有一个含5列的Excel工作表,已使用以下VBA代码实现排序,运行正常:
Dim lrow As Long lrow = Application.WorksheetFunction.CountA(Sheet2.Range("A:A")) Sheet2.Range("A3:E" & lrow).Sort key1:=Range("E3:E" & lrow), order1:=xlAscending, Header:=xlNo ' sno column
需求说明
工作表的Mode列中有7个值为1的单元格,需要在最后一个1所在行的下方插入一行,并在该行计算对应列的总计值。
解决方案代码
在现有排序代码后添加以下逻辑,即可实现需求:
Dim lastOneRow As Long Dim totalRow As Long ' 找到Mode列(请根据实际列位置修改列标,示例为D列)中最后一个值为1的行号 lastOneRow = Sheet2.Cells(Sheet2.Rows.Count, "D").End(xlUp).Row Do While Sheet2.Cells(lastOneRow, "D").Value <> 1 And lastOneRow >= 3 lastOneRow = lastOneRow - 1 Loop ' 在最后一个1的行下方插入一行 Sheet2.Rows(lastOneRow + 1).Insert Shift:=xlDown totalRow = lastOneRow + 1 ' 填写总计标识与计算数值(示例:A列写"总计",B、C列求和,可按需调整) Sheet2.Cells(totalRow, "A").Value = "总计" Sheet2.Cells(totalRow, "B").Formula = "=SUM(B3:B" & lastOneRow & ")" Sheet2.Cells(totalRow, "C").Formula = "=SUM(C3:C" & lastOneRow & ")" ' 其他列需计算总计的话,可继续添加对应公式
注意事项
- 代码中假设Mode列为D列,请根据实际工作表的列位置修改
"D"为对应列标 - 求和范围可根据数据起始行和业务需求调整,确保覆盖所有需要计算总计的行
内容的提问来源于stack exchange,提问作者Raja V
相关产品推荐
相关产品推荐

