arrays - Excel VBA将多个组合框值传递给动态数组

标签 arrays excel vba loops combobox

我想知道是否有办法将选定的多个组合框值添加到动态数组中。到目前为止,这是我下面的代码,目前我只能将一个选定的 Combobox 值提交到数组列表。

Private Sub UserForm_Initialize()

ComboBox1.AddItem "1"
ComboBox1.AddItem "2"
ComboBox1.AddItem "3"
End Sub

Private Sub CommandButton1_Click()

Dim cmbbox(10) As String
Dim i As Integer

For i = LBound(cmbbox) To UBound(cmbbox)
    cmbbox(i) = ComboBox1.Value
    MsgBox cmbbox(i)
Next i

End Sub

我希望能够从组合框中选择一个值,然后该值在 0 位置传递给我的数组,然后如果从组合框中选择另一个值,则将该值传递给我的数组1个职位等...

最佳答案

这应该这样做:

For Each Item In ComboBox1.List
    If Not Item Then
        MsgBox Item
    End If
Next

编辑:我在这里错过了你的观点,还是你改变了你的问题?根据我现在阅读的内容,每次点击命令按钮时,您都希望在数组末尾附加组合框值。您应该执行以下操作:

在您的 sub 之外定义您的数组(在最顶部):
Dim cmbbox() As Variant

代码应如下所示:
Private Sub CommandButton1_Click()
If Len(Join(cmbbox, "")) = 0 Then 'if your array is empty add the first value from combobox
    ReDim cmbbox(0)
    cmbbox(0) = ComboBox1.Value
Else 'if your array is not empty redim your array and add value from combobox
    ReDim Preserve cmbbox(UBound(cmbbox) + 1)
    cmbbox(UBound(cmbbox)) = ComboBox1.Value
End If

MsgBox "Last Added Item : " & cmbbox(UBound(cmbbox))
End Sub

关于arrays - Excel VBA将多个组合框值传递给动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43621942/

相关文章:

javascript - 根据特定条件查找数组中元素的最后一个索引

ruby - 嵌套哈希迭代 : How to iterate a merge over an ( (array of hashes) within a hash )

c - 理解指向赋值 C

vba - 按顺序保存附件

c++ - 当你有一个二维数组(在 C++ 中)时,调用析构函数的正确方法是什么?

c# - 如何使用 C# 更改 Excel 单元格的文本格式?

vba - =MATCH() 等价于多维范围

xml - 如何更改 Excel 的默认 XML 输出编码?

VBA、ADO.Connection 和 PostgreSQL 如何将查询参数传递给 pg_typeof()

vba - 根据单元格中的非精确值使用 VBA 对列表进行排序