南京市公安局领导名单:Excel中用组合框控件与工作表进行数据关联的四个方法

来源:百度文库 编辑:中财网 时间:2024/04/27 20:41:33

Excel中用组合框控件与工作表进行数据关联的四个方法

(2009-05-04 15:02:45)转载 标签:

excel与vba

分类: Excel与VBA

在Excel中,怎样将工作表中的数据作为下拉列表控件(如Combobox控件)中的数据源呢?实现的方法可以有以下三种:

第一种方法:

比如,在名为“城市”的工作表的A1至A11单元格内输入了部分城市的名称,我想将这些数据与组合框控件关联在一起。你只需将组合框控件的“RowSource”属性的属性值设置为“城市!A1:A11”即可。

第二种方法:

还如上例,在名为“城市”的工作表的A1至A11单元格内输入了部分城市的名称,我想将这些数据与组合框控件关联在一起。你可以先在Excel中点击“插入”--“名称”--“定义”,在“在当前工作簿中的名称”中填写一个你认为合适的名称(如MC),在“引用位置”中填写“城市!A1:A11”,然后再将组合框控件的“RowSource”属性的属性值设置为你给引用区域起的名称,如“MC”即可。

第三种方法:

一、先建一个数据表,在其中一个工作表的第一列中输入原始数据,并将这个工作表改名为“城市”

二、利用Visual Basic编辑器制作用户窗口,将窗口名命名为“UserForm”,在窗口中插入一个组合框控件(命名为Combobox1)。

三、双击该窗口,写入如下代码:

Private Sub UserForm_Activate() //当用户窗口被激活时运行这段程序
Sheets("城市").Select //打开“城市工作表”
Dim i As Integer //定义变量i为整型

i = 1 //给i赋初值为1
Do While i < 65535 //当i小于65535(一个工作表的最大行数)时执行环循
If Cells(i, 1) = "" Then //当Cells(i,1)单元格等于空时退出环循
Exit Do
Else //当Cells(i,1)单元格不为空时
ComboBox1.AddItem Cells(i, 1) //将Cells(i,1)的值添加到组合框控件中
End If
i = i + 1
Loop

End Sub

程序运行后可以看到组合框控件的下拉列表中出现了“城市”工作表第一列的所有数据。如图:

第四种方法

还是以上面的工作表为例,将以下代码写在工作表被激活的事件中

Private Sub Worksheet_Activate()
Dim LB As Integer '定义一个名为LB的变量
LB = Sheets("城市").[a65535].End(xlUp).Row '将名为“城市”的工作表的A列最后一个数据行的

' 行列标赋值给LB变量(即A列中数据项的项数)

For i = 1 To LB
ComboBox1.AddItem Sheets("城市").Cells(i, 1).Value '将数据项逐一添加到组合框控件中
Next
End Sub

在以上的四个方法中,具体使用哪一种,就要看具体情况了。