【问题标题】:Fastest way to Hide empty rows from Cell Range using Excel VBA使用 Excel VBA 从单元格区域中隐藏空行的最快方法
【发布时间】:2023-03-19 01:51:02
【问题描述】:

如果单元格范围为空,我有此代码来隐藏整行。它工作正常,但问题是显示结果需要很长时间。

这是我的代码:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim xRg As Range
    For Each xRg In Range("D22:D728")
        If xRg.Value = "" Then
            xRg.EntireRow.Hidden = True
     
        Else
            xRg.EntireRow.Hidden = False
        End If
    Next xRg
End Sub

【问题讨论】:

标签: excel vba


【解决方案1】:

试试这个..

Range("D22:D728").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

【讨论】:

    【解决方案2】:

    找到了我的问题的答案。感谢您分享您的代码。刚刚从这个站点添加了一些解决方法。

    Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Range("D22:D728").EntireRow.Hidden = False
    Dim cell As Range, unionRng As Range
    For Each cell In ActiveSheet.Range("D22:D728")
        If cell.Value = 0 Then
            If Not unionRng Is Nothing Then
                Set unionRng = Union(unionRng, cell)
            Else
                Set unionRng = cell
            End If
        End If
    Next
    If Not unionRng Is Nothing Then unionRng.EntireRow.Hidden = True
    End Sub
    

    【讨论】:

      【解决方案3】:

      尝试屏幕更新:

      Sub Stop_ScreenUpdate ()
      Application.ScreenUpdating = false
      " your code "
      Application.ScreenUpdating = True
      End Sub
      

      【讨论】:

      • 尝试屏幕更新
      • 您可以使用其他详细信息编辑您的答案,而不是将这些详细信息添加为评论。这是首选,因为最终可以合并评论,并且许多人不会看到所有评论。我继续为您进行了此编辑。
      猜你喜欢
      • 2016-01-11
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多