深圳office培训 深圳excel培训
深圳excel培训 深圳office培训
咨询服务
深圳office培训
深圳office培训
office培训
excel培训
ppt培训
vba培训
access培训
word培训
visio培训
project培训
outlook培训
数据库培训
深圳access培训
深圳sql培训
深圳office培训
 

组合框和列表框添加列表项的方法


2016年8月10日 作者: 来源:

组合框和列表框是Excel中最常用的控件,可以用来显示工作表中的数据。为组合框和列表框添加列表项的方法有多种,下面以列表框为例演示添加列表项的方法。
12-1 使用RowSource属性添加列表项
使用RowSource属性将列表框直接与工作表上的一个单元格区域相链接,如下面的代码所示。
#001  Private Sub UserForm_Initialize()
#002      Dim iRow As Integer
#003      iRow = Sheet1.Range("A65536").End(xlUp).Row
#004      Me.ListBox1.RowSource = "sheet1!a1:a" & iRow
#005  End Sub
代码解析:
在窗体初始化时使用RowSource属性为列表框添加列表项。
RowSource属性的语法如下:
object.RowSource [= String]
参数object是必需的,一个有效的对象。
参数String是可选的,组合框或列表框列表的来源。
RowSource属性也可以使用单元格地址,第4行代码可以改成下面的代码:
Me.ListBox1.RowSource = Sheet1.Range("A1:A" & iRow).Address(External:=True)
需要注意的是,如果RowSource属性指定的工作表区域不是活动工作表的话,Address属性的External参数是不可缺的,设置为True表示是外部引用,如果缺省此参数或为False,将不能为列表框添加列表项。
RowSource属性还可以使用命名的单元格区域,如果已把工作表区域命名为“城市”,第4行代码可以改成下面的代码:
Me.ListBox1.RowSource = "城市"
对于工作表中的列表框控件或使用窗体添加的列表框控件不能使用RowSource属性,需要使用ListFillRange属性指定填充列表框的工作表区域,如下面的代码所示。
#001  Sub ListFillRange()
#002      Dim iRow As Integer
#003      iRow = Sheet1.Range("A65536").End(xlUp).Row
#004      Sheet2.ListBox1.ListFillRange = "Sheet1!a1:a" & iRow
#005      Sheet2.Shapes("列表框").ControlFormat.ListFillRange = "Sheet1!a1:a" & iRow
#006  End Sub
代码解析:
ListFillRange过程为工作表中的列表框的填充区域,ListFillRange属性用于指定填充列表框的工作表区域。
第4行代码对于使用窗体添加的列表框控件需要使用ControlFormat属性来返回窗体控件以后才能设置其ListFillRange属性。
12-2 使用List属性添加列表项
使用List属性为列表框添加列表项,如下面的代码所示。
#001  Private Sub UserForm_Initialize()
#002      Dim Arr As Variant
#003      Dim iRow As Integer
#004      iRow = Sheet1.Range("A65536").End(xlUp).Row
#005      Arr = Sheet1.Range("A1:A" & iRow)
#006      Me.ListBox1.List = Arr
#007  End Sub
代码解析:
在窗体初始化时使用List属性为列表框添加列表项。
List属性的语法如下:
object.List( row, column ) [= Variant]
参数object是必需的,一个有效对象。
参数row是必需的,取值范围为 0 到列表条目数减 1 之间的数值。
参数column是必需的,取值范围为 0 到总列数减 1 之间的数值。
参数Variant是可选的,列表框中指定条目的内容。
第6行代码,使用List属性把数组复制到列表框控件上。
除了使用数组外,List属性还可以使用命名的单元格区域,如果已把工作表区域命名为“城市”,可以改成下面的代码:
#001  Private Sub UserForm_Initialize()
#002      Me.ComboBox1.List = Range("城市").Value
#003  End Sub
对于工作表中使用窗体添加的列表框控件使用List属性添加列表项,如下面的代码所示。
#001  Sub List()
#002      Dim Arr As Variant
#003      Dim iRow As Integer
#004      Dim myObj As Object
#005      iRow = Sheet1.Range("A65536").End(xlUp).Row
#006      Arr = Sheet1.Range("A1:A" & iRow)
#007      Set myObj = Sheet2.Shapes("列表框").ControlFormat
#008      myObj.List = Arr
#009  End Sub
代码解析:
List过程设置列表框的List性,用于指定填充列表框的工作表区域。
12-3 使用AddItem方法添加列表项
使用AddItem方法添加列表项,对于单列的列表框,在列表中添加一项。对于多列的列表框,在列表中添加一行,如下面的代码所示。
#001  Private Sub UserForm_Initialize()
#002      Dim iRow As Integer
#003      Dim i As Integer
#004      iRow = Sheet1.Range("A65536").End(xlUp).Row
#005      For i = 1 To iRow
#006          Me.ListBox1.AddItem (Sheet1.Cells(i, 1))
#007      Next
#008  End Sub
代码解析:
在窗体初始化时使用AddItem方法为列表框添加列表项。
AddItem方法的语法如下:
object.AddItem [ item [, varIndex]]
参数object是必需的,一个有效的对象。
参数item是可选的,指定要添加的项或行。第一个项或行的编号为 0;第二个项或行的编号为 1,依此类推。
参数varIndex是可选的,指定新的项或行在对象中的位置。
如果提供一个有效的varIndex的值,AddItem方法就把项或行放在列表中的那个位置。如果忽略 varIndex,此方法就把项或行添加在列表的末尾。对于多列列表框或者组合框,AddItem 方法插入一个完整的行,为控件的每一列都插入一项。为了给第一列后面的项赋值,可用List或Column属性来规定项的行和列。
对于工作表中使用窗体添加的列表框控件使用AddItem方法添加列表项,如下面的代码所示。
#001  Sub AddItem()
#002      Dim iRow As Integer
#003      Dim i As Integer
#004      iRow = Sheet1.Range("A65536").End(xlUp).Row
#005      With Sheet2.Shapes("列表框").ControlFormat
#006          .RemoveAllItems
#007          For i = 1 To iRow
#008              .AddItem Sheet1.Cells(i, 1)
#009          Next
#010      End With
#011  End Sub
代码解析:
AddItem过程设置使用AddItem方法添加为工作表中使用窗体控件添加的列表框添加列表项。
其中第5行代码使用ControlFormat属性来返回窗体控件,第6行代码使用RemoveAllItems方法删除窗体控件中的列表框的所有数据项,如果控件是ActiveX 列表框则需要使用Clear方法。


阅读:2098 上一则:在窗体中高亮显示按钮 下一则:去除列表框数据源的重复值和空格

返回前页 返回顶部
温馨提示:本中心是深圳较为专业office培训机构、咨询及报名请先预约,电话:0755-82124110。
深圳地址:深圳红荔路四川大厦1109B-1110(3号龙岗线通新岭地铁站A出口10米)
热线:0755-82124110(福田、南山、宝安) 0755-22205758(罗湖、龙岗、龙华) 13510024571(东莞、惠州、珠海、广州)
北京地址:北京清华大学华业大厦三区三楼 版权所有:深圳万博计算机教育 粤ICP备11006947号-1
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训 欢迎咨询!
您好!请点击这里咨询万博教育
深圳万博吴老师
您好!请点击这里咨询万博教育
深圳万博史老师
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训