ListBox中匹配TextBox名称的对应数值求和问题求助
解决ListBox匹配项第三列求和问题
你的代码核心问题是逻辑顺序错误:If判断被放在了For循环外面,而且变量i未初始化就用来访问ListBox列,导致匹配判断完全失效,直接累加了第三列所有值。
修正后的代码如下:
Dim i As Integer Dim mySum As Double mySum = 0 For i = 0 To Me.ListBox1.ListCount - 1 ' 逐行检查第一列是否匹配TextBox1的值且不为空 If Me.ListBox1.List(i, 0) = Me.TextBox1.Value And Me.ListBox1.List(i, 0) <> "" Then mySum = mySum + Me.ListBox1.List(i, 2) End If Next i Me.TextBox4.Value = Format(mySum, "#,##0.00") End Sub
关键修正点:
- 将匹配判断
If移入For循环内部,每遍历一行就执行一次条件检查,只累加符合条件的第三列值 - 使用
List(i, 0)代替Column(i, 0):List是按行索引访问(第i行第0列),Column是按列索引访问,这里用List逻辑更清晰 - 确保循环覆盖ListBox所有行(索引从0到
ListCount - 1)
内容的提问来源于stack exchange,提问作者Kobby Adom
相关产品推荐
相关产品推荐

