增加合计栏

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

阅读更多
文章标签: integer
个人分类: vb.net
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭