Vba 组合框事件侦听器
我试图使用针对这个问题给出的解决方案:在我的特殊情况下: 我以编程方式创建组合框。我想做的是以编程方式创建一个带有精确标签的单个文本框,或者在生成的组合框旁边创建几个带有尽可能多标签的文本框,具体取决于它们的值 以下是我用于以编程方式创建这些组合框的代码: Set listBoxB1=Frame1.Controls.Add(“Forms.ComboBox.1”) 因此,我希望当用户选择值列表时,在组合框旁边显示一个带标签的文本框,当用户使用value NUM时,在组合框旁边创建6个文本框,并与之水平对齐 实际上,我希望当用户更改组合框的值时,显示会自动更改,如果您能给出一些指示,这将非常有用Vba 组合框事件侦听器,vba,excel,Vba,Excel,我试图使用针对这个问题给出的解决方案:在我的特殊情况下: 我以编程方式创建组合框。我想做的是以编程方式创建一个带有精确标签的单个文本框,或者在生成的组合框旁边创建几个带有尽可能多标签的文本框,具体取决于它们的值 以下是我用于以编程方式创建这些组合框的代码: Set listBoxB1=Frame1.Controls.Add(“Forms.ComboBox.1”) 因此,我希望当用户选择值列表时,在组合框旁边显示一个带标签的文本框,当用户使用value NUM时,在组合框旁边创建6个文本框,并与之
您能告诉我如何使上面链接中的解决方案适应我的情况吗?因为我对VBA非常陌生,不知道如何做到这一点,我曾尝试实现给定的代码,但失败了。这确实有些复杂。这个问题讨论它:。被接受的答案包含了一个技巧,我已经用了很多很多次了。提前创建您需要的所有控件(表单上只有有限数量的不动产,因此在实践中这将是一个合理的小数目),并通过控制.visible属性使它们在需要时动态可见(或隐藏)。甚至可以在设计视图中让一个控件位于另一个控件之上,在运行时只有一个控件可见。运行时可见的将接收事件
Private-Sub-listBoxB1\u Click()
或Private-Sub-listBoxB1\u Change()
@Raystafarian这类事情对动态创建的控件不起作用。@john我想这取决于它们的“动态”程度。。如果它们是动态创建的,那么它们可以是按顺序创建的,也可以是专门命名的,或者其他任何形式。当然不会动态创建这些事件,但它们仍然可以工作。@Raystafarian试试看。如果控件在设计时不存在,则即使将其定义为name_click()(其中name是添加控件时指定给控件的名称),事件处理程序也不会启动。
With listBoxB1
.Name = "list" & i
.Height = 15
.Width = 100
.Left = 70
.Top = 10 * i * 3
.AddItem "NUM"
.AddItem "LIST"
End With