如何将组合框的.List保存到变量中

时间:2012-08-22 02:44:09

标签: excel excel-vba vba

我想将组合框中的所有项目存储在变量中。变量应该是什么类型的?我试着做一个

Dim ComboBoxItems() As String ' dynamic array of strings

但是我不知道如何将组合框中的项目复制到这个动态数组中?

我可以循环播放:

for i = 1 to combobox.ListCount - 1
 ComboBoxItems(i+1) = combobox.List(i)
next i

(注意,我是对的,它真的很疯狂,动态数组是1索引的,而组合框列表是0索引的吗?)

这是要走的路吗?或者肯定有一种方法可以在没有循环的情况下复制整个列表?

1 个答案:

答案 0 :(得分:2)

对于名为Combobox1的工作表上的ActiveX ComboBox,您可以使用:

Sub Test()
Dim vArr()
ReDim vArr(1 To ComboBox1.ListCount)
vArr = ComboBox1.List
End Sub

具有组合框ComboBox1和命令按钮CommandButton1的用户窗体的相同方法

Private Sub CommandButton1_Click()
Dim S()
ReDim S(1 To Me.ComboBox1.ListCount)
S = Me.ComboBox1.List
End Sub

Private Sub UserForm_Initialize()
'Load some items into ComboBox
With Me.ComboBox1
.AddItem "fred, jones'"
.AddItem "mary"
.AddItem "wayne"
End With
End Sub