分享

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

 hercules028 2021-06-02

excelperfect

如下图1所示,在用户窗体界面上实际放置着一个文本框和一个列表框,当单击文本框右侧的下拉按钮时,会出现一个列表框,你可以从中选择数据项并将其输入到文本框中。

图片

1

也就是说,通过编写代码组合了文本框和列表框,使文本框看起来像组合框的外观。因为无法在文本框的属性窗口中设置DropButtonStyleShowDropButtonWhen属性,因此必须在运行时进行设置。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多