vba, 对列里含有"小计"的单元格所在行的数据进行汇总, 放在最后一行
时间: 2023-07-19 21:36:26 浏览: 122
你可以使用 VBA 循环遍历每一行,判断当前单元格是否包含 "小计",如果包含,则将该行数据进行累加,最后将汇总结果放在最后一行。
以下是一个示例代码:
```vb
Sub SummarizeSubtotals()
Dim lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row ' 获取数据最后一行的行号
Dim subtotalRow As Long
Dim subtotalRange As Range
For subtotalRow = 1 To lastRow ' 遍历每一行
If InStr(1, ActiveSheet.Cells(subtotalRow, 1).Value, "小计") > 0 Then ' 判断是否包含 "小计"
If subtotalRange Is Nothing Then ' 初始化汇总范围
Set subtotalRange = ActiveSheet.Range("A" & subtotalRow & ":" & ActiveSheet.Cells(subtotalRow, Columns.Count).End(xlToLeft).Address)
Else ' 扩展汇总范围
Set subtotalRange = Union(subtotalRange, ActiveSheet.Range("A" & subtotalRow & ":" & ActiveSheet.Cells(subtotalRow, Columns.Count).End(xlToLeft).Address))
End If
End If
Next subtotalRow
If Not subtotalRange Is Nothing Then ' 如果存在汇总范围
Dim summaryRow As Long
summaryRow = lastRow + 1 ' 汇总结果放在数据最后一行的下一行
subtotalRange.Copy Destination:=ActiveSheet.Range("A" & summaryRow) ' 将汇总结果复制到最后一行
subtotalRange.ClearContents ' 清空汇总范围的数据
End If
End Sub
```
你可以将上述代码复制到 VBA 编辑器中,然后在 Excel 中执行该宏,即可实现对包含 "小计" 的行数据进行汇总并放在最后一行。
阅读全文
相关推荐

















