excelperfect 如下图1所示,在用户窗体界面上实际放置着一个文本框和一个列表框,当单击文本框右侧的下拉按钮时,会出现一个列表框,你可以从中选择数据项并将其输入到文本框中。 图1 也就是说,通过编写代码组合了文本框和列表框,使文本框看起来像组合框的外观。因为无法在文本框的属性窗口中设置DropButtonStyle和ShowDropButtonWhen属性,因此必须在运行时进行设置。 在VBE中,插入一个用户窗体,在其中添加一个名为TextBox1的文本框。然后,在用户窗体代码模块,输入下面的代码: Private WithEvents mobjListBox As MSForms.ListBox Private Sub UserForm_Initialize() TextBox1.ShowDropButtonWhen = fmShowDropButtonWhenAlways End Sub Private Sub TextBox1_DropButtonClick() If mobjListBox Is Nothing Then Set mobjListBox = Controls.Add('Forms.ListBox.1') With mobjListBox .Top = TextBox1.Top + TextBox1.Height .Left = TextBox1.Left .Width = TextBox1.Width .SpecialEffect = fmSpecialEffectFlat .BorderStyle = fmBorderStyleSingle With .Font .Size = TextBox1.Font.Size .Name = TextBox1.Font.Name End With .AddItem 'a' .AddItem 'b' .AddItem 'c' .AddItem 'd' .AddItem 'e' .AddItem 'f' .AddItem 'g' EndWith Else mobjListBox.Visible = Not mobjListBox.Visible End If End Sub Private Sub mobjListBox_Change() TextBox1.Text = mobjListBox.List(mobjListBox.ListIndex) mobjListBox.Visible = False End Sub 运行用户窗体,就可以看到上图1所示的效果了。 欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。
|
|
来自: hercules028 > 《VBA》