前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实战技巧25:巧用文本框和列表框

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

作者头像
fanjy
发布2021-07-12 16:10:11
1.5K0
发布2021-07-12 16:10:11
举报
文章被收录于专栏:完美Excel完美Excel

如下图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所示的效果了。

?developer/article/1845642/undefined

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-02,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com