我是VBA新手,无法弄清楚如何根据某些列标准对行进行组合和求和。比如说,B列和C列有文本值,而A列有数字值。第1行和第2行在列B和C中具有相同的值。我希望将这些行组合成一行,其中列B和C具有与之前相同的值,但是列A具有前一行的总和。
答案 0 :(得分:0)
假设第1行包含列的标题,并且其余行只包含值,则以下代码应该执行该操作(对于sheet1):
Public Sub SumByTwoCriteria()
Dim lngStartRow, lngSearchRow, lngLastRow As Long
lngLastRow = Sheet1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For lngStartRow = 2 To lngLastRow
For lngSearchRow = lngStartRow + 1 To lngLastRow
While Sheet1.Cells(lngStartRow, 2).Value2 = Sheet1.Cells(lngSearchRow, 2).Value2 And _
Sheet1.Cells(lngStartRow, 3).Value2 = Sheet1.Cells(lngStartRow, 3).Value2
Sheet1.Cells(lngStartRow, 1).Value2 = Sheet1.Cells(lngStartRow, 1).Value2 + Sheet1.Cells(lngSearchRow, 1).Value2
Sheet1.Rows(lngSearchRow & ":" & lngSearchRow).Delete
lngLastRow = lngLastRow - 1
Wend
Next lngSearchRow
Next lngStartRow
End Sub