簡體   English   中英

根據多個范圍單元格值 VBA 隱藏多行

[英]Hide multiple rows based on multiple ranges cell value VBA

我在工作簿中有一個工作表(Sheet3),我想編寫 VBA 以根據多個范圍內的單元格值隱藏多行。 VBA 必須經過兩個不同的步驟; 第一個是如果指定范圍內的第一個單元格為空白,則隱藏整個范圍(范圍 1 除外,因為第一個單元格永遠不會為空白)。 第二步是如果范圍中的第一個單元格不是空白,則隱藏該范圍中的空白行。 以下是具體內容:

范圍 1

  1. A11:A60 - 隱藏范圍內的空白行

范圍 2

  1. A71:A120 - 如果單元格 A71 為空,則隱藏 A71:A120。 否則隱藏 A71:A120 范圍內的所有空白行。

范圍 3

  1. A131:A180 - 如果單元格 A131 為空,則隱藏 A131:A180。 否則隱藏 A131:A180 范圍內的所有空白行。

范圍 4

  1. A191:A240 - 如果單元格 A191 為空,則隱藏 A191:A240。 否則隱藏 A191:A240 范圍內的所有空白行。

范圍 5

  1. A251:A300 - 如果單元格 A251 為空,則隱藏 A251:A300。 否則隱藏 A251:A300 范圍內的所有空白行。

     Public Sub HideRowsSummary() Dim wsMySheet As Worksheet Dim lngMyRow As Long, unionRng As Range Application.ScreenUpdating = False For Each wsMySheet In ThisWorkbook.Sheets Select Case wsMySheet.Name Case Is = Sheet3 .Range("A11:A60", "A71:A120", "A131:A180", "A191:A240", "A251:A300").EntireRow.Hidden = False For lngMyRow = 11 To 60 If Len(.Range("A" & lngMyRow)) = 0 Then If Not unionRng Is Nothing Then Set unionRng = Union(unionRng, .Range("A" & lngMyRow)) Else Set unionRng = .Range("A" & lngMyRow) End If End If Next lngMyRow End With End Select If Not unionRng Is Nothing Then unionRng.EntireRow.Hidden = True Set unionRng = Nothing Next wsMySheet Application.ScreenUpdating = True

    結束子

在您的問題#2, 3, 4, 5都遵循類似的邏輯。

第一個i循環處理#1 代碼的下一部分處理#2 您可以簡單地復制/粘貼底部部分並更改您的測試值以完成您的詢問。


Option Explicit

Sub HideMe()

Dim i As Integer

With ThisWorkbook.Sheets("Sheet3")
    For i = 11 To 60
        .Range("A" & i).EntireRow.Hidden = .Range("A" & i) = vbNullString
    Next i

    'Repeat this portion for you other ranges that follow the same rules
    If .Range("A" & 71) = vbNullString Then
        .Range("A71:A120").EntireRow.Hidden = True
    Else
        For i = 72 To 120
            .Range("A" & i).EntireRow.Hidden = .Range("A" & i) = vbNullString
        Next i
    End If
End With

End Sub

這可以通過以下方式改進

A) 使用For Each循環而不是For i循環 B) 不是逐行隱藏行,而是將它們作為 ( Union ) 添加到行集合中,並一次性隱藏所有Union

暫無
暫無

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

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