【问题标题】:How to properly work with a combobox in VBA?如何在 VBA 中正确使用组合框?
【发布时间】:2015-08-28 02:49:18
【问题描述】:

我不知道如何在 VBA 中正确使用组合框。首先,我尝试使用 activeX 表单控件,但它最终无法正常工作(自行调整大小或一起消失),这似乎是 excel 中的常见问题或错误。与以不同分辨率观看或类似的东西有关。

无论如何,我在这里。我正在尝试使用表单控件组合框。如何将名称从 Combo Box 1 更改为更合适的名称?如何通过 VBA 填充组合框?在打开工作簿时?如何正确使用组合框?几个小时以来,我一直在尝试不同的事情,但我无法让它发挥作用。我要扔毛巾了

编辑:只是一个注释,但您可能不会在此站点上找到任何关于我尚未尝试过的表单控件的文章。同时我将添加一些我已经尝试过但我已经发布的代码你可以试一试。

Private Sub Workbook_Open()
   Sheet10.DropDowns.Add(280, 70, 200, 20)
end sub

上面在我的 sheet10 中添加了一个组合框。现在怎么办?我该如何填写?我该如何命名?我没有头绪

Private Sub Workbook_Open()
   Sheet10.DropDowns.Add(280, 70, 200, 20).Name = cmbTest

   cmbTest.AddItem "test"
   'Tried many different things here to add an item, this is just 1 of the many ways I found on the internet. Don't work.
end sub

在下拉列表的名称之上,但我不能使用该名称来编码任何内容..

【问题讨论】:

标签: vba excel


【解决方案1】:

这个怎么样(未经测试,但合乎逻辑):

Private Sub Workbook_Open()
    Dim objDropDown as DropDown
    Set objDropDown = Sheet10.DropDowns.Add(280, 70, 200, 20)
    ... etc ...
End Sub

【讨论】:

    【解决方案2】:

    Excel 中的 Add 等方法通常会向对象返回一个实例。例如,您可以执行以下操作:

    Dim myDropdown As DropDown
    Set myDropdown = Sheet10.DropDowns.Add(280, 70, 200, 20)
    myDropdown.Name = "cmbTest"
    myDropdown.AddItem "Hi"
    

    您的沮丧是可以理解的,因为我很难找到任何文档。不过,这篇博文:VBA For Excel's Form Control Combo Boxes,似乎有一些可能有用的例子。

    【讨论】:

    • 好吧,我现在感觉有点傻,我尝试了你所说的确切内容,除了将 myDropdown 作为 DropDown 进行调暗。我有类似 Dim myDropdown As Object 或 Dim myDropdown As MSForms.ComboBox 之类的东西。这两种方法都没有明显效果。
    • 它也适用于dim as Variant 或“对象”。不知道为什么它不适合你。
    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多