定制Excel选择性输入列表:[2]VBA弹出列表法

2025-10-14 19:47:23

1、插入用户窗体:

打开Excel工作簿-->Alt+F11进入VBA窗口-->右击工程窗口空白处-->插入用户窗体。

定制Excel选择性输入列表:[2]VBA弹出列表法

2、设置用户窗体属性:

在用户窗体属性窗口中,将窗体名称改为“F1”,将标题改为“学历选项”。

定制Excel选择性输入列表:[2]VBA弹出列表法

3、插入列表框:

点选控件箱中的列表框-->点击用户窗体空白处放置-->调整好大小、位置。

定制Excel选择性输入列表:[2]VBA弹出列表法

4、设置列表框属性:

按图示设置列表框的背景色和字体。

定制Excel选择性输入列表:[2]VBA弹出列表法

5、用户窗体程序设计:

双击用户窗体或列表框,进入用户窗体代码窗口,在窗口中输入程序代码。

定制Excel选择性输入列表:[2]VBA弹出列表法

6、用户窗体程序设计——UserForm_Activate()事件

在用户窗体激活事件中给列表框初始化,设置窗体位置为单元格跟随。

Private Sub UserForm_Activate()

   With ListBox1

   .AddItem "大学本科"

   .AddItem "大专"

   .AddItem "中专"

   .AddItem "高中以下"

   .AddItem "硕士研究生"

   .AddItem "博士研究生"

   End With

   F1.Top = ActiveCell.Top + 50

   F1.Left = ActiveCell.Left + ActiveCell.Width + 25

End Sub

7、用户窗体程序设计——listBox1_Change()事件

当列表框的值发生改变(选择了某个选项)时,激活该事件。在事件中将列表框用户所选的值赋给当前单元格。

Private Sub listBox1_Change()

   ActiveCell.Value = ListBox1.Value

   Cells(ActiveCell.Row, 1).Select

   Unload F1

End Sub

8、工作表程序设计——Worksheet_SelectionChange事件

在工程窗口中找到调用弹出列表的工作表,双击进入其代码窗口,输入下面的程序。

'当所选单元格为第3列、2至最后一行的某个单元格时,激活F1窗体。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim EndRow As Single

EndRow = Range("a65536").End(xlUp).Row  '数据区域最后一行的行号

If Target.Row > 1 And Target.Row <= EndRow And _

   Target.Column = 3 And Target.Rows.Count = 1 _

      Then F1.Show  '激活F1窗体

End Sub

定制Excel选择性输入列表:[2]VBA弹出列表法

9、使用效果:

定制Excel选择性输入列表:[2]VBA弹出列表法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢