簡體   English   中英

Excel隱藏行公式

[英]Excel Hide Rows Formula

如果參考單元格中沒有文本,我試圖隱藏工作表中的所有行。 我正在使用以下公式

Option Explicit
Private Sub Worksheet_Activate()

Dim r As Range, c As Range
Set r = Range("d4:f1000")
Application.ScreenUpdating = False
For Each c In r
    If Len(c.Text) = 0 Then
    c.EntireRow.Hidden = True
Else
    c.EntireRow.Hidden = False
    End If
Next c
Application.ScreenUpdating = True
End Sub

當我運行它時,它會無限期運行,並且我必須在任務管理器中退出該程序。 我認為發生這種情況是因為我最初沒有定義c。 我對此是否正確?

感謝您抽出寶貴的時間來回復!

首先,您可以縮短並加快代碼,如下所示:

Option Explicit
Private Sub Worksheet_Activate1()
    Dim r As Range, c As Range

    Set r = Range("d4:f1000")
    Application.ScreenUpdating = False
    For Each c In r
        c.EntireRow.Hidden = Len(c.Text) = 0
    Next c
    Application.ScreenUpdating = True
End Sub

但是如果您隱藏了所有行,而同一行中的范圍D4:F100單元格為空白,則可以使用以下代碼:

Private Sub Worksheet_Activate4()
    Application.ScreenUpdating = False
    With Range("D4:F1000") '<-- reference your range
        With .Columns(1).SpecialCells(xlCellTypeBlanks) '<--| reference its 1st column blank cells
            With .Offset(, 1).SpecialCells(xlCellTypeBlanks) '<--| reference referenced blank cells whose side cell is blank
                With .Offset(, 1).SpecialCells(xlCellTypeBlanks) '<--| reference referenced blank cells whose side cell is blank
                    .EntireRow.Hidden = True '<--| hide rows when all three cells are blank
                End With
            End With
        End With
    End With
    Application.ScreenUpdating = True
End Sub

可以使冗長得多,如下所示:

Private Sub Worksheet_Activate5()
    Application.ScreenUpdating = False
    Range("D4:F1000") _
         .Columns(1).SpecialCells(xlCellTypeBlanks) _
         .Offset(, 1).SpecialCells(xlCellTypeBlanks) _
         .Offset(, 1).SpecialCells(xlCellTypeBlanks) _
         .EntireRow.Hidden = True '<--| hide rows when all three cells are blank
    Application.ScreenUpdating = True
End Sub

唯一的警告是沒有行符合該條件,它將返回一個錯誤

如果這是一個問題,則只需在子On Error Resume Next頂部添加On Error Resume Next

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM