【发布时间】:2016-02-17 15:20:16
【问题描述】:
我正在尝试遍历列表框并将内容添加到数组中......
我的代码是这样的:
Private Sub exportfolders_Click()
Dim list As String
Dim folderlist As String
Dim folderarray() As String
'Dim i As Interger
For i = 0 To Me.selectedfolders.ListCount - 1
'folderlist = (Me.selectedfolders.Column(0, i))
'folderarray() = Join(Me.selectedfolders.Column(0, i), ",")
list = (Me.selectedfolders.Column(0, i))
folderarray() = Join(list, ",")
ReDim Preserve folderarray(i)
Next i
folderlist = folderarray
'folderarray() = Join(folderlist, ",")
MsgBox (folderlist)
End Sub
您可以看到我已注释掉的部分,并尝试了各种方法使其正常工作。但我在folderarray(i) = Join(list, ",") 不断收到“无法分配给数组”的消息。关于我在哪里失败的任何指示?
【问题讨论】:
-
尝试将数组调暗为变体。定义为 String 的数组需要具有指定的大小(即 Dim folderarray(5) As String),而 Variant 允许不指定的大小。
-
仍然得到“无法分配给数组”:(
-
在给“folderarray()”赋值之前放置“ReDim”语句,否则无法赋值。然后,当为“folderarray()”分配一个值时,您必须使用索引 (folderarray(i)=...)。如果要将整个列表分配给数组,则必须将数组声明为“Variant”类型
-
我得到运行时错误 '13:即使变量设置为 Variant 或 String,类型也不匹配
-
触发错误的行是这样的:folderarray(i) = Join(list, ",")
标签: arrays ms-access vba listboxitems