如何自动隐藏excel中的行

问题描述 投票:-1回答:3

我有一个出勤跟踪器,用于发送班次结束报告。目前,我全班的出席节目。我想创建一个隐藏0次错过行的宏。

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

所以如果F18为0,我需要隐藏它。如果F18> 0,我需要它可见。

我认为这是一个相当简单的宏,但我基本上没有使用任何宏的经验。

excel vba excel-vba excel-2010
3个回答
1
投票

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

您可以将此绑定到form控件或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

1
投票

这个怎么样...

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

0
投票

把它放在一个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
© www.soinside.com 2019 - 2024. All rights reserved.