Excel 单元格隐藏

例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

 

你可能感兴趣的:(Excel 单元格隐藏)