Combobox事件监听器

时间:2015-07-01 10:02:03

标签: excel vba excel-vba

我试图使用针对此问题的解决方案:Programmatically create event listener in VBA在我的特定情况下:

我以编程方式创建组合框。我想要做的是以编程方式创建一个带有精确标签的文本框或几个texbox,在生成的组合框旁边有多个标签,具体取决于它们的值。

以下是我用于以编程方式创建这些组合框的代码:

设置listBoxB1 = Frame1.Controls.Add(" Forms.ComboBox.1")

With listBoxB1
       .Name = "list" & i
       .Height = 15
       .Width = 100
       .Left = 70
       .Top = 10 * i * 3
       .AddItem "NUM"
       .AddItem "LIST"
End With

所以我希望当用户选择值LIST时,单个文本框会显示在带有标签的组合框旁边,当他或她使用值NUM时,会在组合框旁边创建6个文本框并与其水平对齐

我实际上希望当用户更改组合框的值时显示会自动更改,如果您能给出一些指示,将会很有帮助。

您能告诉我如何根据上述链接调整解决方案,因为我对VBA很新,并且不知道如何做到这一点,我试图实施给出的代码却失败了。

1 个答案:

答案 0 :(得分:0)

它真的有点牵扯。这个问题讨论了它:Assign on-click VBA function to a dynamically created button on Excel Userform。接受的答案包含了我多次使用过的技巧。创建所有你需要提前控制的控件(表单上只有一定数量的不动产,所以在实践中这将是一个相当小的数字),并根据需要动态显示(或隐藏它们)控制.visible属性。甚至可以在设计视图中将1个控件放在另一个控件的顶部,在运行时只有1个可见。运行时可见的将接收事件。