Excel VBA:在工作表中定义列表框并将所选项目分配给数组

时间:2015-04-13 00:03:05

标签: excel vba excel-vba

我搜索谷歌和stackoverflow相当广泛,但我仍然得到错误。我相信我的错误在于定义列表框,TestLB在表格中#34;布局" (Sheet4)。我已经尝试将代码放入我的Sheet代码和模块代码中。

Sub Reserve_Click()

Dim SuggestList As MSForms.ListBox
Set SuggestList = Worksheets("Layout").TestLB

Dim Size As Integer
Size = SuggestList.ListCount - 1

ReDim ReserveAry(0 To Size) As String
Dim i As Integer

    For i = 0 To Size
          If SuggestList.Selected(i) Then
             ReserveAry(i) = SuggestList.Selected(i).Value 

              Worksheets("Suggestions").Cell(i + 1, 3) = ReserveAry(i)
          End If
      Next i
End Sub

我收到了#34;编译错误:无效的限定符"上 ReserveAry(i) = SuggestList.Selected(i).Value

1 个答案:

答案 0 :(得分:0)

错误在于您要识别要添加到数组的列表框中的值。 SuggestList.Selected(i)返回true或false,并且没有value属性。

相反,代码应为ReserveAry(i) = SuggestList.List(i)

代码可能仍有些缺陷。循环遍历列表框中的项目,然后使用它们在列表框中的位置仅将选定的项目添加到数组中。例如,如果选择了第1项和第3项,则数组将如下所示:Res(0) = "Item 1"; Res(1) = ""; Res(2) = "Item 3"您是否期望这些空数组值?