用EXCEL实现三级联动的vba代码
2009-07-16 13:44
411 查看
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim tempStr As String
Dim firstDrawBoxRowCount As Integer
Dim firstDrawBoxColumn As Integer
firstDrawBoxRowCount = 15 --三级联动第一级的单元格行数 ---隐藏的单元格
firstDrawBoxColumn = 1 ---三级联动第一级的单元格列数---隐藏的单元格
Dim secondDrawBoxRowCount As Integer
Dim secondDrawBoxColumn As Integer
secondDrawBoxRowCount = 84 ----三级联动第二级的单元格行数---隐藏的单元格
secondDrawBoxColumn = 4 ----三级联动第二级的单元格列数 ---隐藏的单元格
If Target.Column = 13 Then ------------三级联动第一级的单元格列数---选择第一级显示第二级
Cells(Target.Row, Target.Column + 1) = ""
Cells(Target.Row, Target.Column + 2) = ""
For i = 2 To firstDrawBoxRowCount + 1
If Trim(Cells(Target.Row, Target.Column)) = Trim(Cells(i, firstDrawBoxColumn)) Then
tempStr = Trim(Cells(i, firstDrawBoxColumn + 1))
Cells(Target.Row, Target.Column + 1).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=tempStr
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Exit For
End If
Next i
ElseIf Target.Column = 14 Then------三级联动第二级的单元格列数---选择第二级显示第三级
For i = 2 To secondDrawBoxRowCount + 1
If Trim(Cells(Target.Row, Target.Column)) = Trim(Cells(i, secondDrawBoxColumn)) Then
tempStr = Trim(Cells(i, secondDrawBoxColumn + 1))
If tempStr = "" Then
tempStr = " "
End If
Cells(Target.Row, Target.Column + 1).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=tempStr
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Exit For
End If
Next i
End If
End Sub
红色部分是用宏录制的vba
我做了个省市区三级联动的简单例子http://download.csdn.net/source/1495163 ,免分下载,呵呵,
有不明白的,可以留言问。
好了,肚子饿了去吃饭啦!!!
Dim i As Integer
Dim tempStr As String
Dim firstDrawBoxRowCount As Integer
Dim firstDrawBoxColumn As Integer
firstDrawBoxRowCount = 15 --三级联动第一级的单元格行数 ---隐藏的单元格
firstDrawBoxColumn = 1 ---三级联动第一级的单元格列数---隐藏的单元格
Dim secondDrawBoxRowCount As Integer
Dim secondDrawBoxColumn As Integer
secondDrawBoxRowCount = 84 ----三级联动第二级的单元格行数---隐藏的单元格
secondDrawBoxColumn = 4 ----三级联动第二级的单元格列数 ---隐藏的单元格
If Target.Column = 13 Then ------------三级联动第一级的单元格列数---选择第一级显示第二级
Cells(Target.Row, Target.Column + 1) = ""
Cells(Target.Row, Target.Column + 2) = ""
For i = 2 To firstDrawBoxRowCount + 1
If Trim(Cells(Target.Row, Target.Column)) = Trim(Cells(i, firstDrawBoxColumn)) Then
tempStr = Trim(Cells(i, firstDrawBoxColumn + 1))
Cells(Target.Row, Target.Column + 1).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=tempStr
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Exit For
End If
Next i
ElseIf Target.Column = 14 Then------三级联动第二级的单元格列数---选择第二级显示第三级
For i = 2 To secondDrawBoxRowCount + 1
If Trim(Cells(Target.Row, Target.Column)) = Trim(Cells(i, secondDrawBoxColumn)) Then
tempStr = Trim(Cells(i, secondDrawBoxColumn + 1))
If tempStr = "" Then
tempStr = " "
End If
Cells(Target.Row, Target.Column + 1).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=tempStr
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Exit For
End If
Next i
End If
End Sub
红色部分是用宏录制的vba
我做了个省市区三级联动的简单例子http://download.csdn.net/source/1495163 ,免分下载,呵呵,
有不明白的,可以留言问。
好了,肚子饿了去吃饭啦!!!
相关文章推荐
- Android实现三级联动下拉框 下拉列表spinner的实例代码
- 省市县三级联动实现代码
- js实现一个省市区三级联动选择框代码分享
- asp.net DropDownList 三级联动下拉菜单实现代码
- JavaScript实现三级联动菜单实例代码
- 省市区三级联动jquery实现代码
- EXCEL VBA代码,实现点击Sheet1按钮控件保存不连续单元格的数据到Sheet2中,然后清空输入内容
- AJAX和WebService实现省市县三级联动具体代码
- 通过AJAX调用页面后台代码方法实现省级三级联动效果 (简单练习)前台
- Android实现三级联动下拉框 下拉列表spinner的实例代码
- asp.net DropDownList 三级联动下拉菜单实现代码
- springmvc 三级联动 纯js代码实现 附加添加编辑实现
- AJAX实现三级联动(关键代码)
- Django Admin实现三级联动的示例代码(省市区)
- jquery 实现二级/三级/多级联动菜单的思路及代码
- 原生javascript AJAX 三级联动的实现代码
- django admin 后台实现三级联动的示例代码
- 原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
- .Net下三级联动不刷新实现全代码(读取后台数据库 ok)