增加合计栏

此博客提供了一段Excel VBA代码,用于根据第1列的品种信息,对第3列的数量进行合计。代码通过循环遍历数据行,判断品种是否相同,若相同则累加数量,不同则插入新行显示合计,并统计增加的行数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sub main()
'根据第1列(品种)加入合计第3列(数量)

Dim intStartRow As Integer  '开始行
Dim intEndRow As Integer '结束行
Dim calculateCol As Integer '需要累计的列
Dim nameCol As Integer  '第1列,用于判断的列

Dim i As Integer '外层循环
Dim j As Integer '内层循环

Dim flagRow As Integer '标志行
Dim flagSum As Integer '因为数量是整数

Dim intAddRow As Integer ' 一共增加的行数
intStartRow = 4
intEndRow = 20

intAddRow = 0 '统计增加了多少行,以便在合并单元格时知道结束行要加几行
i = intEndRow
Do While i >= intStartRow  '当大于开始行的时候运行循环
   'flagSum = Val(Cells(i, 3).Value)
   flagRow = i
   For j = i - 1 To intStartRow Step -1
       'MsgBox Cells(i, 1). & Cells(j, 1)
       If Cells(i, 1).Value = Cells(j, 1).Value Then
          flagSum = flagSum + Val(Cells(i, 3).Value) '第三列是数量列
       Else
          If j + 1 <> i Then  '不是同一行
             MsgBox flagRow & "行到" & j + 1 & "行" & "合计" & flagSum
             Rows(flagRow + 1).Insert
             intAddRow = intAddRow + 1
          End If
          i = j '重新从上一行开始
          Exit For
      
       End If
  
  
   Next
  
   If j < intStartRow Then  '说明内层循环已经到顶了,该结束循环了
   '加上这行的目的是:如果i=5,j到了小于4的时个,还有两行,它们又不是同一行,当然要处理了
          If j + 1 <> i Then  '不是同一行
             MsgBox flagRow & "行到" & j + 1 & "行" & "合计" & flagSum
             intAddRow = intAddRow + 1
          End If
             Exit Do
   End If
  
Loop

If intAddRow <> 0 Then MsgBox "增加了" & intAddRow & "行"

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值