VB排序时出现类型不匹配

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:49:24
-----------分割线(以下是代码)----------------
Private Type items
id As String
name As String
num As Integer
pname As String
End Type

Private Sub command1_click()
Dim items() As items, p() As String
Dim i As Integer
ReDim Preserve items(List1.ListCount - 1)
For i = 0 To List1.ListCount - 1
p = Split(List1.List(i), "|")
With items(i)
.id = p(0)
.name = p(1)
.num = p(2)
.pname = p(3)
End With
Next i

'开始排序
Dim j As Integer, tmp As items
For i = 0 To UBound(items) - 1
For j = 0 To UBound(items) - 1
If items(j + 1).num < items(j).num Then '小的在后面则换位置
With items(j)
tmp.id = .id
tmp.name = .name
tmp.num = .num
tmp.pname = .pname '三角交换开始
End With
With items(j + 1)
items(j).id = .id
items(j).name = .name
items(j).num = .num
items(j).pname = .pname
.id = tm

List1.AddItem items(i).id 或.name或.num...

items(i)后面要加属性的.

Private Type items
id As String
name As String
num As Integer
pname As String
End Type

Private Sub command1_click()
Dim items() As items, p() As String
Dim i As Integer
ReDim Preserve items(List1.ListCount - 1)
For i = 0 To List1.ListCount - 1
p = Split(List1.List(i), "|")
With items(i)
.id = p(0)
.name = p(1)
.num = p(2)
.pname = p(3)
End With
Next i

'开始排序
Dim j As Integer, tmp As items
For i = 0 To UBound(items) - 1
For j = 0 To UBound(items) - 1
If items(j + 1).num < items(j).num Then '小的在后面则换位置
With items(j)
tmp.id = .id
tmp.name = .name
tmp.num = .num
tmp.pname = .pname '三角交换开始
End With
With items(j + 1)
items(j).id = .id
items(j).name = .name
items(j).num = .num
item