繁体   English   中英

如何在Excel中自动隐藏行

[英]How to automatically hide rows in excel

我有一个考勤追踪器,用于发送轮班结束报告。 目前,我全班的出勤表演。 我想制作一个宏,用于隐藏错过0次的行。

Blank Tracker 2.0是书的名称Pulse Template是工作表的名称我需要F的宏是我在其中记录错过的时间(从另一张纸上绘制)的列18-46是需要隐藏的行或未隐藏。

因此,如果F18为0,则需要将其隐藏。 如果F18> 0,则需要它可见。

我认为这是一个相当简单的宏,但是我对宏几乎没有任何经验。

一种有效的方法是使用Union收集所有的行隐藏,然后隐藏所有一气呵成。 同样,此代码检查单元格中的值实际上是数字。

您可以将其绑定到窗体控件或ActiveX按钮,如先前的答案中所述。

Sub hideRows()


Dim wb As Workbook
Dim wsSource As Worksheet

Set wb = ThisWorkbook
Set wsSource = wb.Worksheets("Sheet7")

Dim loopRange As Range
Dim currRow As Range
Dim hideRange As Range

Set loopRange = wsSource.Range("F18:F46")
loopRange.EntireRow.Hidden = False

For Each currRow In loopRange.Rows

    If IsNumeric(currRow.Value2) And currRow.Value2 = 0 Then

        If Not hideRange Is Nothing Then
            Set hideRange = Union(currRow, hideRange)
        Else
           Set hideRange = currRow
        End If

    End If

Next currRow

If Not hideRange Is Nothing Then hideRange.EntireRow.Hidden = True


End Sub

这个怎么样...

Sub HideRowsLoop()
    For Each cell In Worksheets("Pulse Template").Range("C18:C46")
        If cell.Value = "0" Then
            cell.EntireRow.Hidden = True
        End If
    Next cell
End Sub

将此放置在activeX按钮事件上。 如果F18至F46为0,则隐藏,否则显示。

Sub button_click()
    Dim i as integer
    For i = 18 to 46
        If Activesheet.Range("F" & i) = 0 Then
            Activesheet.Range("F" & i).entireRow.Hidden = True
        else
            Activesheet.Range("F" & i).entireRow.Hidden = False
        End If
    Next i
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM