.cmbcom11.AddItem "cotton"
.cmbcom11.AddItem "elastane"
.cmbcom11.AddItem "polyester elastane"
.cmbcom11.AddItem "nylon elastane"
.cmbcom11.AddItem "seashell"
这是我用来在下面的接口中为一个组合框添加一个列表的方法
cmbcom11是组合1(第一行),12将是下一行,13将是后一行。
我刚刚展示了一小部分代码,我将在所有cmbcom
上重复这些代码
我知道在输入时我的名字是正确的,因为没有编译错误或运行时错误。
那为什么我的名单没有出现在组合框里呢?
发布于 2021-08-16 11:08:42
您需要了解代码的位置以及如何调用它。
在视频中,定义了一个子例程Reset
,它填充表单的控件:它清空文本框并设置组合框的选项。该子模块存储在一个常规模块中。它也可以在表单本身的代码中(除了编写Me.txtId.Value
而不是frmForm.txtId.Value
)。
然而,这个常规的reset
需要被调用(这就是你缺少的地方)。您想什么时候执行这个例程?就在表单显示的那一刻--或者当有人告诉表单“请展示自己”时,或者在用户看到表单之前,更精确。
窗体(以及窗体上的所有控件)具有在特定事件时自动调用的事件。在VBA中,这些事件例程名称包含两个部分,第一部分是控件的名称,第二部分是事件的名称。这些名称是固定的,如果您更改它们,VBA运行时将找不到它们,什么也不会发生。
现在,这些事件例程需要在(对象)代码中。对于表单,转到表单编辑器并按F7:这是表单的代码。按下编辑器顶部的左侧下拉列表:它包含表单的所有控件,包括表单本身。选择"Userform“。现在,您可以在右边的下拉菜单中看到表单中的所有事件。选择“初始化”。您将注意到,代码中添加了一个空例程Userform_Initialize
。将语句Reset
(或Call Reset
)添加到此例程中。此事件例程在窗体初始化时调用,在窗体可见之前执行所需的任何操作。
在视频中,作者有更多的事件例程对按钮的点击做出反应:这些例程也需要在表单的代码中。将它们放在单独的模块中是没有用的,VBA事件处理程序找不到它们。
最后备注:为了显示表格,作者在纸上放了一个大的形状。单击此形状也会调用一个事件例程,但是,您可以随意命名该例程,这个例程需要在一个模块中。在视频中,它被命名为show_form
。只需确保在将其赋值给形状后,不要将其重命名。
https://stackoverflow.com/questions/68802613
复制