Vba宏excel:如果单元格等于FALSE,如何隐藏行

时间:2015-01-08 00:58:57

标签: excel vba excel-vba

我有一个项目需要Excel在用户选择活动表上的特定选项后隐藏单独工作表(在同一工作簿中)上的行。当单击的行将隐藏在单独的工作表上时,宏链接到一个按钮,整个过程在后台进行。如果用户想要检查具有隐藏行的表格,则需要导航到该单独的工作表以查看结果。

图片说明: http://postimg.org/image/ek6981vg1/

工作表("输入 - 选择笔") - >活动表单中有按钮

工作表("输入笔") - >单独的工作表哪里有隐藏的行

我尝试了几种方法,但没有一种方法可行: 方法1:

Sub selectPens()
Dim c As Range
Application.EnableEvents = False
On Error Resume Next
For Each c In Range("E6:E35")
   If c.Value = "FALSE" Then
        Worksheets("Input- Pen").c.EntireRow.Hidden = True
    ElseIf c.Value = "TRUE" Then
        Worksheets("Input- Pen").c.EntireRow.Hidden = False
   End If
 Next c
 On Error GoTo 0
 Application.EnableEvents = True
 End Sub

方法2:

Sub selectPens()
Dim i As Long
Set wselect = Sheet11
With wselect
For i = 6 To 35
    If ActiveSheet.Cells(i, 5).Value = "FALSE" Then

        .Range("i:i").EntireRow.Hidden = True
        ' .Rows(i).EntireRow.Hidden = True
    ElseIf ActiveSheet.Cells(i, 5).Value = "TRUE" Then
        ' .Rows(i).EntireRow.Hidden = False
        .Range("i:i").EntireRow.Hidden = False
    End If
Next i
End With

End Sub

如果有任何帮助,我将不胜感激。

非常感谢!

1 个答案:

答案 0 :(得分:2)

Sub selectPens()

    Dim i As Long,  wsselect
    Set wselect = Sheet11

    For i = 6 To 35
        'EDIT
        wselect.Rows(i).Hidden = (ActiveSheet.Cells(i, 5).Value = False)        
    Next i

End Sub