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

vba如何根据选择添加组合框内容


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

在使用多个组合框输入数据时,往往希望后一个组合框中的条目能根据前一个组合框的内容有所不同,如示例中第二个选择城市的组合框根据第一个选择省份的组合框所选择的不同省份加载不同的县市名称,示例代码如下:
#001  Private Sub UserForm_Initialize()
#002      Dim col As New Collection
#003      Dim arr As Variant
#004      Dim rng As Range
#005      Dim i As Integer
#006      On Error Resume Next
#007      For Each rng In Range("A2:A" & Sheet1.Range("A65536").End(xlUp).Row)
#008          If rng <> "" Then col.Add rng, CStr(rng)
#009      Next
#010      ReDim arr(1 To col.Count)
#011      For i = 1 To col.Count
#012          arr(i) = col(i)
#013      Next
#014      ComboBox1.List = arr
#015      ComboBox1.ListIndex = 0
#016      CommandButton1.Accelerator = "D"
#017  End Sub
#018  Private Sub ComboBox1_Change()
#019      Dim myAddress As String
#020      Dim rng As Range
#021      Dim mymsg As Integer
#022      ComboBox2.Clear
#023      With Sheet1.Range("A:A")
#024          Set rng = .Find(What:=ComboBox1.Text)
#025              If Not rng Is Nothing Then
#026                  myAddress = rng.Address
#027                  Do
#028                      ComboBox2.AddItem rng.Offset(, 1)
#029                      Set rng = .FindNext(rng)
#030                  Loop While Not rng Is Nothing And rng.Address <> myAddress
#031              End If
#032          End With
#033          ComboBox2.ListIndex = 0
#034  End Sub
代码解析:
第1行到第17行代码窗体的Initialize事件过程,在窗体显示时将工作表A列中的省份名称去除重复后加载到组合框中。
其中第7行到第13行代码把工作表A列中的省份名称使用Add方法去除重复后加载到组合框中,应用于Collection 对象的Add方法添加一个成员对象 。
第15行代码设置组合框的ListIndex属性为0,选中组合框的第一行条目。ListIndex属性指定当前选中的列表框或组合框条目,语法如下:
object.ListIndex [= Variant]
参数Variant是可选的,控件中当前被选的条目。
ListIndex 属性包含列表中被选行的索引,取值范围为 -1 到列表总行数减 1(即ListCount - 1)之间的数值。当用户没有选中行时,ListIndex 返回 -1。列表中第一行的 ListIndex值是0,第二行的ListIndex 值是1,依此类推。
第16行代码设置窗体中按钮的Accelerator属性值。Accelerator属性设置或检索控件的加速键,语法如下:
object.Accelerator [= String]
参数String是可选的,用作加速键的字符。
先按住 Alt 再紧接着按加速键,会将焦点定位到该对象上,并初始化与该对象关联的一个或多个事件,也就是说窗体显示后按Alt+D组合键将会执行“关闭”按钮中的代码关闭窗体。
第18行到第34行代码ComboBox1的Change事件过程,使用Find方法将所有属于ComboBox1所选择的省份的县市加载到ComboBox2中。


阅读:2069 上一则:vba如何在输入时逐步提示信息 下一则:使用DTP控件输入日期

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