如果Range EntireRow.Hidden

时间:2017-06-30 13:34:37

标签: excel vba excel-vba

我非常感谢您对我所面临的问题的帮助。

除非在特定单元格中写入某些内容,否则我希望隐藏3行。 如果在特定单元格中写入了某些内容,我希望下一行被取消隐藏。因此,它假设继续使用下两个单元格。

我已经在模块中编写了以下代码,请指导我如何解决这个问题(我做错了什么?)

Sub InsertRow()
    If Range("U6") <> "" Then 
        Rows("7").EntireRow.Hidden = False
        Rows("8:9").EntireRow.Hidden = True 
    End If 
End Sub

2 个答案:

答案 0 :(得分:1)

不确定这是否是您想要的,但是这会通过col U中的所有已用单元格并检查

下面的行
Public Sub InsertRow()
    Dim targetCol As Range, itm As Range

    Set targetCol = Worksheets("Sheet1").UsedRange.Columns(21)  'UsedRange starts at A1

    Application.ScreenUpdating = False             'Update sheet name and column number

    For Each itm In targetCol.Cells
        itm.Offset(1).EntireRow.Hidden = (Len(itm.Value2) = 0)
    Next

    Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

试试这个解决方案:

Sub InsertRow()
    Rows("7").EntireRow.Hidden = Range("U6") = ""
    Rows("8:9").EntireRow.Hidden = True
End Sub