我有一个由字符串列表框生成的一维数组,我想将其与主2D数组匹配,其中第一列为字符串,而所有其他均为数字。目的是创建具有匹配字符串和母版中相关数据的第三个数组。尽管受案者不是未知数,但无法从此处搜索找到更好的解决方案。猜猜我在构建新阵列时迷路了。
Private Sub ImportSelection()
Dim i, j, k, m, ListSize As Integer
Dim arr2() As String
Dim pArr As variant
Dim Size As Integer
Size = List2.ListCount
ReDim ListBoxContents(0 To Size) As String
For i = 1 To Size
ListBoxContents(i) = List2.list(i)
Next i
On Error GoTo eh
ReDim arr2(1 To List2.ListCount, 1 To 16)
For i = LBound(ListBoxContents) To UBound(ListBoxContents)
For j = LBound(pArr, 1) To UBound(pArr, 1)
If ListBoxContents(i) = pArr(i, 1) Then
arr2(k, m) = pArr(i, j)
k = k + 1
m = m + 1
End If
Next j
Next i
eh:
MsgBox Err.Description
End Sub
答案 0 :(得分:0)
将代码的中间部分更改为->
k = 0 ' need to initialize (and also add headings to row zero)
For i = LBound(ListBoxContents) To UBound(ListBoxContents)
For j = LBound(pArr, 1) To UBound(pArr, 1)
If ListBoxContents(i) = pArr(J, 1) Then ' pArr needs to be J
k = k + 1 ' got a match, ergo increment the output row
For m = 0 To UBound(pArr, 2) - 1
arr2(k, m) = pArr(J, m) ' move into col m, from pArr J row
Next m
End If
Next j
Next i
Exit Sub ' do not drop thru
也像Comintern sez-> pArr从未分配任何值。
另外,您能从
获得所需的东西吗?Dim i, j, k, m, ListSize As Integer