相关疑难解决方法(0)

如何使用变量名称在工作表上引用控件对象?

我已经将一个ListBox添加到SHEET(而不是"UserForm")我用鼠标做了这个.我点击了小锤子和扳手图标.

这个ListBox似乎很容易使用如下代码引用:

ListBox1.Clear
Run Code Online (Sandbox Code Playgroud)

要么

ListBox1.AddItem("An option")
Run Code Online (Sandbox Code Playgroud)

但是,我有三个这样的ListBoxes(方便地命名为ListBox1,ListBox2和ListBox3),我想编写一个函数来用数组数据填充它们,如下所示:

Call populate_listbox(ListBox2, designAreaArray)
Run Code Online (Sandbox Code Playgroud)

第一个参数是列表框名称,第二个参数是数据.

但我不知道如何正确发送"ListBox2",或在函数内正确引用它.

例如:

Dim controlName as string
controlName = "ListBox1"
Run Code Online (Sandbox Code Playgroud)

不起作用,即使我定义函数如下:

Sub populate_listbox(LB As ListBox, dataArray As Variant)
    Dim i As Integer: i = 0
    For i = LBound(dataArray, 2) + 1 To UBound(dataArray, 2)    ' Skip header row
       LB.AddItem (dataArray(index, i))
    Next i
End Sub
Run Code Online (Sandbox Code Playgroud)

显然,它会导致错误匹配的数据类型错误.我已经尝试将"controlName"定义为ListBox,但这也不起作用......

虽然可能是我对listBox的引用不正确.我已经看到了很多方法来引用控件对象......

MSForms.ListBox.
ME.ListBox
Forms.Controls.
Worksheet.Shapes.
Run Code Online (Sandbox Code Playgroud)

列表继续,没有任何对我有用.

excel vba excel-vba

9
推荐指数
1
解决办法
5万
查看次数

以编程方式在VBA(Excel)中添加ComboBox

我正在尝试在VBA中创建,放置和填充ComboBox的元素.我不明白我错过了什么,但我不知道该怎么做.我MSForms我的API(即我不能写Dim someComboBox As MSForms.ComboBox,因为它失败.是否有可能以某种方式进口吗?有人点我在正确的方向?

我想要实现的是,当用户单击一个按钮时,会创建一个包含各种项目(ComboBoxes,RadioButtons等)的新表单,因此我想以编程方式执行此操作.

excel vba combobox

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

excel ×2

vba ×2

combobox ×1

excel-vba ×1