【问题标题】:Combine and Sum rows based on multiple criteria with VBA使用 VBA 基于多个条件组合和求和行
【发布时间】:2016-03-04 06:39:18
【问题描述】:

我是 VBA 新手,不知道如何根据某些列标准组合和求和行。比如说,B 列和 C 列具有文本值,而 A 列具有数字值。第 1 行和第 2 行在 B 列和 C 列中具有相同的值。我希望将这些行合并为一行,其中 B 列和 C 列具有与以前相同的值,但 A 列具有先前行的总和。

【问题讨论】:

  • 你能附上想要结果的屏幕吗?
  • 我无法附上屏幕截图。好像分数不够。

标签: excel sum rows vba


【解决方案1】:

假设第 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多