VBA实战技巧25:巧用文本框和列表框

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社群,进行技术交流和提问,获取更多电子资料。

(0)

相关推荐