用文字解释很难,但我会试试。 我正在尝试阅读excel表并将其放入列表框中。一行是名称,另一行是属于名称的数字。
示例:
左侧是listbox1,右侧是listbox2。 我想把这些数字相互结合起来。排序,所以它会这样结束:
我试过了,但似乎无法编写解决方案。有人知道该怎么办吗?
到目前为止,这是我的代码:
For intLoopCounter = 1 To CInt(objXLWs.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row)
Try
objRange = objXLWs.Range("I" & intLoopCounter)
ListBox1.Items.Add(objRange.Value)
objRange = objXLWs.Range("F" & intLoopCounter)
ListBox2.Items.Add(objRange.Value)
Catch ex As Exception
End Try
Next intLoopCounter
答案 0 :(得分:0)
也许从excel读取名称到Dictionary对象?然后,如果名称已经存在,您只需将之前的值添加到新值中即可获得总值。然后,您可以遍历所有键并将Key的值放在列表框中。
Dim nameValDict as new Dictionary(of Object, Object)
Dim count as Integer = CInt(objXLWs.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row)
For i = 1 to count
Dim name = objRange = objXLWs.Range("I" & count )
Dim val = objXLWs.Range("F" & count )
if nameValDict.containsKey(name) then
nameValDict.item(name) += val
Else
nameValDict.add(name, val)
end If
Next
For each item in nameValDict.keys
ListBox.Items.add(String.format("{0}|{1}", item, nameValDict.item(item)))
Next
P.S。如果你有option strict on
并且我没有实际测试它,因为我的家用机器上没有excel,这段代码可能无效。我只是使用了你的excel位。