如何在excel中找到空单元格以隐藏行

时间:2015-07-24 14:39:19

标签: excel vba

我尝试在工作表中找到空单元格,然后隐藏整行。我可以隐藏和取消隐藏行...但我似乎还没有理解正确找到单元格的概念。

我收到错误的参数计数或无效的赋值错误消息。

Sub hideAndSeek()
    Dim zellbereich As String

    For i = 7 To 43
        If Not IsEmpty(Worksheets("project").Range.Cells(i, 2)) Then
            zellbereich = i & ":" & i
            Rows(zellbereich).Select
            Selection.EntireRow.Hidden = False
        End If
    Next
End Sub

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这不是引用工作表单元格的正确方法(它会导致运行时错误):

Worksheets("project").Range.Cells(i, 2)

看起来应该是这样的:

Worksheets("project").Cells(i, 2)

无论如何,这项任务可以更轻松地完成。以下是执行此操作的代码:

Sub hideAndSeek()
    Dim rng As Excel.Range
    Dim rngEmpty As Excel.Range
    '------------------------------------------------------------

    With Worksheets("project")
        Set rng = Range(Cells(7, 2), Cells(43, 2))
        rng.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
    End With

End Sub

我认为您只想检查范围B7:B43,因为这是您的原始代码所暗示的。如果不是这样,您可以更改此部分:

        Set rng = Range(Cells(7, 2), Cells(43, 2))

对于其他范围(请注意Cells(7, 2)表示B列和第7行,而不是相反)。