根据另一列中的其他条件在列中添加一组数值

时间:2017-07-07 22:53:19

标签: excel vba

我在Sheet1中有表。我可以总结某个国家的所有数字数据。 但是我只想总结相同日期的数字。 我有日期的ComboBox。例如,如果我选择7月1日,它将仅在7月1日添加这些数字。

如果我选择7月1日,我想要的结果如下: 美国24 巴西56 加拿大68

截图

screenshot

我的代码:

Private Sub ComboBox1_Change()

Dim a As Long
Dim b As Long
Dim c As Long
Dim lastrow As Long

a = 0
b = 0
c = 0

lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lastrow
If Cells(i, 3) = "America" Then
a = Cells(i, 4) + a

ElseIf Cells(i, 3) = "Brazil" Then
b = Cells(i, 4) + b

ElseIf Cells(i, 3) = "Canada" Then
c = Cells(i, 4) + c
End If
Next i

'Range("A16") = a

txtAmerica.Value = a
txtBrazil.Value = b
txtCanada.Value = c

End Sub

Private Sub UserForm_Initialize()

ComboBox1.List = Sheets("Sheet1").Range("G1:G10").Value

End Sub

1 个答案:

答案 0 :(得分:0)

假设A列中的值是日期,并且假设您的语言环境使用的是mm / dd / yyyy日期格式,这就像将汇总代码包装在检查日期的If语句中一样简单:

For i = 2 To lastrow
    If Cells(i, "A").Value = CDate(ComboBox1.Value) Then
        If Cells(i, 3) = "America" Then
            a = Cells(i, 4) + a
        ElseIf Cells(i, 3) = "Brazil" Then
            b = Cells(i, 4) + b
        ElseIf Cells(i, 3) = "Canada" Then
            c = Cells(i, 4) + c
        End If
    End If
Next i