将单元格值传递到组合框列表中

时间:2015-02-04 17:06:29

标签: excel vba excel-vba

我希望将单元格值传递到Excel中的组合框列表中。

我创建了一个数组来传递单元格值,但是在调用它们时它们并没有进入组合框列表。我需要将单元格值显示为下拉项,所有显示的都是空格:

Sub Clear_Invoice_Data()

    Dim Arr As Variant
    Arr = Range("A1:A5").Value

    frmAddLineItem.ddlProduct.List = Arr    

End Sub

通过用户表单中的按钮调用它:

Private Sub cmdClearAll_Click()

    Call Button_Functions.Clear_Invoice_Data
    i = 18

End Sub

问题图片:(无值)

no elements 5 elements

3 个答案:

答案 0 :(得分:2)

如果您愿意,还有另一种(粗略的)方法found here可以执行此操作。另外,请确保定义要从中获取数据的工作表名称:

Sub AddItemsToBox()

    Dim itemcell As Range

    For Each itemcell in Sheets("Source Sheet Name").Range("A1:A5")
        frmAddLineItem.ddlProduct.AddItem itemcell.Value
    Next itemcell

End Sub

答案 1 :(得分:1)

使用ComboBox,您可以使用相同的.List属性将工作表值填充到combox框。

检查以下示例:

ComboBox1.List = Worksheets("Sheet1").Range("A1:A5").Value

如果你想使用Array,

Dim Arr As Variant
Arr = Worksheets("Sheet1").Range("A1:A5").Value
ComboBox1.List = Arr 

答案 2 :(得分:0)

我只是进入VBA,而我正是这样做的。我认为我发现的方法非常简单明了。我将分享它,以防它可以帮助某人

  1. 声明变量以将工作表中的表存储为“范围”。确保 它在子例程之外,因此可以由任何函数调用

Dim myTable As Range

  1. 将表值存储在声明的变量中。然后,选择要在组合框中存储的值的列(范围)。
Private Sub UserForm_Initialize()
Set myTable = Worksheets("dataSheetName").Range("A2:B6")
    Me.myComboBox.List = myTable.Columns(1).Value
End Sub ```