我有一个出勤跟踪器,用于发送班次结束报告。目前,我全班的出席节目。我想创建一个隐藏0次错误行的宏。
Blank Tracker 2.0是这本书的名称 脉冲模板是我需要宏的工作表的名称 F是我记录错过时间的列(从另一张纸中抽出) 18-46是需要隐藏或隐藏的行。
因此,如果F18为0,我需要隐藏它。如果F18> 0,我需要它可见。
我认为这是一个相当简单的宏,但我基本上没有使用任何宏的经验。
答案 0 :(得分: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 :(得分: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
答案 2 :(得分: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