例1.在B1:B20进行输入操作,如果输入的数值小于6的,就会自动隐藏,代码: Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row < 21 Then
If Cells(Target.Row, 2) < 6 Then Rows(Target.Row).EntireRow.Hidden = True
End If
End Sub
例2.在Excel表格1~27中输入如下表格:
客户类型 | 个人 | |
名称(姓名) | “客户类型”选择“个人”则显示黄色的行 | |
个人职业类型 | ||
性别 | ||
国籍 | ||
固定电话 | ||
手机 | ||
证件类型 | ||
身份证号码 | ||
证件有效期(YYYY-MM-DD) | ||
地址邮编 | ||
经常居住地 | ||
组织机构代码证 | “客户类型”选择“单位”则显示绿色的行 | |
税务登记证号 | ||
企业经营范围 | ||
控股股东 | ||
工商登记证号 | ||
工商号有效期(YYYY-MM-DD) | ||
法定代表人 | ||
证件类型 | ||
证件号码 | ||
证件有效期(YYYY-MM-DD) | ||
联系人 | ||
联系电话 | ||
联系人手机 | ||
联系人身份证 |
添加宏代码为:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Sheet1.Rows("3:13").EntireRow.Hidden = 0
Rows("14:23").EntireRow.Hidden = 0
Range("a3:c23").Interior.ColorIndex = 0
If [b2] = "个人" Then
Range("A3:C13").Select
Selection.Interior.ColorIndex = 6
Rows("14:23").EntireRow.Hidden = 1
ElseIf [b2] = "单位" Then
Range("A14:C23").Select
Selection.Interior.ColorIndex = 4
Rows("3:13").EntireRow.Hidden = 1
End If
End Sub
可以实现行的自动隐藏
例3.第一行的第一个单元格=1那么就自动隐藏
Sub 隐藏()
for i=1 to x x--行号
if sheets(1).cells(i,1)=1 then
Rows(i).Select
Selection.EntireRow.Hidden = True
end if
next i
end sub
例4:
Private Sub CommandButton1_Click()
' 判定区域:B5:Z5,
' 隐藏规则:为空的列隐藏。
' 例如:C5="",则C列隐藏;E5="",则E列隐藏...
' 虚心请教,不吝赐教。谢谢!
End Sub
Private Sub CommandButton1_Click()
For i = 2 To 26
If Cells(5, i) = "" Then Cells(1, i).EntireColumn.Hidden = True
Next
End Sub
例5:A1单元格内容为显示时,B列显示,A1单元格内容为隐藏时,B列隐藏,代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Sheet1.Columns("2").EntireColumn.Hidden = 0
If [a1] = "隐藏" Then
Cells(1, 2).EntireColumn.Hidden = True
ElseIf [a1] = "显示" Then
Cells(1, 2).EntireColumn.Hidden = False
End If
End Sub
附加:
On Error Resume Next的意思是从该语句开始,遇到错误时程序不会中止,也不会出现错误提示,将继续运行。作用范围直至程序结束或语句所在函数等结束。
相关学习网站:
http://club.excelhome.net/thread-421905-1-1.html