VB如何对listview中的数据有条件的求和
比如在listview1中各列(前三列)的数据分别是语文90数学96英语88物理93数学86语文89语文99英语97现在我需要做的是将这三列的数据分别按照前面的科目为条件...
比如在listview1中各列(前三列)的数据分别是
语文 90
数学 96
英语 88
物理 93
数学 86
语文 89
语文 99
英语 97
现在我需要做的是将这三列的数据分别按照前面的科目为条件对后面分数进行汇总,并显示在另一个listview2中(第一列为科目,第二列为各个科目分数的汇总。要求:同一个科目只能显示一个),如下:
语文 278
英语 185
物理 93
数学 182
请问该怎么弄?先谢谢了! 展开
语文 90
数学 96
英语 88
物理 93
数学 86
语文 89
语文 99
英语 97
现在我需要做的是将这三列的数据分别按照前面的科目为条件对后面分数进行汇总,并显示在另一个listview2中(第一列为科目,第二列为各个科目分数的汇总。要求:同一个科目只能显示一个),如下:
语文 278
英语 185
物理 93
数学 182
请问该怎么弄?先谢谢了! 展开
展开全部
Dim a(1 To 8, 1 To 2) As String
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim total As Integer
m = 1
For i = 1 To ListView1.ListItems.Count
For j = 1 To i - 1
If ListView1.ListItems(j) = ListView1.ListItems(i) Then
Exit For
End If
Next
If j = i Then
ListView2.ListItems.Add , , ListView1.ListItems(i)
total = 0
For k = 1 To ListView1.ListItems.Count
If ListView1.ListItems(k) = ListView2.ListItems(m) Then
total = total + ListView1.ListItems(k).SubItems(1)
End If
Next
ListView2.ListItems(m).ListSubItems.Add 1, , total
m = m + 1
End If
Next
End Sub
Private Sub Form_Load()
a(1, 1) = "语文": a(1, 2) = 90
a(2, 1) = "数学": a(2, 2) = 96
a(3, 1) = "英语": a(3, 2) = 88
a(4, 1) = "物理": a(4, 2) = 93
a(5, 1) = "数学": a(5, 2) = 86
a(6, 1) = "语文": a(6, 2) = 89
a(7, 1) = "语文": a(7, 2) = 99
a(8, 1) = "英语": a(8, 2) = 97
Dim i As Integer
For i = 1 To 8
ListView1.ListItems.Add , , a(i, 1)
ListView1.ListItems(i).ListSubItems.Add 1, , a(i, 2)
Next
End Sub
详见附件
效果图
更多追问追答
追问
谢谢你这么好的耐心和回答!顺便问题下:假如在分数栏的右边还有一栏数值也需要求和的话,该这么修改代码?
追答
你就不能 .....先把我写的仔细分析分析.........看懂....举一反三.......
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询