加载中…
个人资料
华油老杨
华油老杨
  • 博客等级:
  • 博客积分:0
  • 博客访问:4,292
  • 关注人气:122
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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”即可。

 

第三种方法:

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

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

 

     二、利用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

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

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

 

第四种方法

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

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

 

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有