當 I 列中的值為 0 時隱藏所有行,取決於儲存格 D3 中的下拉列表

當 I 列中的值為 0 時隱藏所有行,取決於儲存格 D3 中的下拉列表

我在單元格 D3 中有一個下拉列表。一旦您更改D3,行值會發生變化,其中一些數字大於/小於0,而某些在I 列中仍為尖0。精確0 值的資訊I 列將被隱藏,但是當我再次更改 D3 時,它將重置並再次隱藏 I 列中包含 0 的所有行。

答案1

若要在工作表上進行變更來觸發巨集,您可以使用
Worskheet.Change 事件在工作表上放置一個子項目:Private Sub Worksheet_Change(ByVal Target As Range)

為了循環“I”列,有幾種方法可以循環它。我們可以定義範圍,並執行For each循環,或者我們可以使用迭代。

為了避免循環整個列,我們可以透過幾種不同的方式找到該列的最後使用行,Cells(Rows.Count, 9).End(xlUp).Row就是其中之一。

檢查循環中單元格的值非常簡單,要隱藏該行,我們可以使用Range.EntireRow.Hidden = True

整件事情可能看起來像這樣:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim hide As Boolean, i As Long
'Intersect validates that the change is only happening in "D3" to be valid
If Not Intersect(Target, Range("D3")) Is Nothing And Target.Count = 1 Then
' i = starting range - to - last row    
    For i = 4 To Cells(Rows.Count, 9).End(xlUp).Row
        hide = False
        If Cells(i, 9).Value = "0" Then hide = True
        Cells(i, 9).EntireRow.Hidden = hide
    Next i
End If
End Sub

相關內容