簡體   English   中英

基於 A 列隱藏/取消隱藏行 (0/"")

[英]Hide/unhide rows based on Column A (0/"")

我找到了這段代碼,我把它放在工作表代碼中,保存並退出,它在打開時不做任何事情。 感謝您的時間。

Private Sub Worksheet_Calculate()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Me.Range("A1:A80")
    If c.Value = 0 Or c.Value = "" Then
        c.EntireRow.Hidden = True
    Else
        c.EntireRow.Hidden = False
    End If
Next c
Application.ScreenUpdating = True
End Sub

正如@GSerg 所說,在工作表計算時將觸發事件“Worksheet_Calculate”。

對於原始問題,它僅與工作表有關。 似乎應該在激活工作表后觸發它。 可以通過以下代碼引用:

Private Sub Worksheet_Activate()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Me.Range("A1:A80")
    If c.Value = 0 Or c.Value = "" Then
        c.EntireRow.Hidden = True
    Else
        c.EntireRow.Hidden = False
    End If
Next c
Application.ScreenUpdating = True
End Sub

@Luuk,您遇到錯誤是因為代碼未放入工作表中。 “我”指的是粘貼代碼的對象。 如果將代碼放在 sheet1 中,那么 sheet1.Range(...) 是有意義且有效的。 但是,如果代碼粘貼在工作簿或模塊中,則 workbook.range() 或 module1.range 無效。

暫無
暫無

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

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