【发布时间】:2013-11-19 22:06:19
【问题描述】:
有没有办法修改此代码,使其仅隐藏/取消隐藏特定范围内的行,例如第 21:89 行?
Sub HideLLRows() '此子取消/隐藏 EIRP LL 中的空白行
Application.ScreenUpdating = False
Dim i As Long
Dim EIRPLL As Worksheet
Dim NewState As VbTriState
Dim dat As Variant
Dim rws As Range
Dim LastRow As Long
Set EIRPLL = Sheets("EIRP LL")
With EIRPLL.UsedRange
LastRow = .Rows.Count - .Row + 1 ' in case used range doesn't start at row 1
dat = .Columns(2).Resize(LastRow, 1)
End With
NewState = vbUseDefault
With EIRPLL
For i = 6 To LastRow
If dat(i, 1) = "" Then
If NewState = vbUseDefault Then
NewState = Not .Rows(i).Hidden
End If
If rws Is Nothing Then
Set rws = Cells(i, 1)
Else
Set rws = Union(rws, Cells(i, 1))
End If
End If
Next
End With
rws.EntireRow.Hidden = NewState
Application.ScreenUpdating = True
结束子
【问题讨论】:
-
如果
UsedRange直到1048576行怎么办?因此,如果您想找到最后一行,请使用THIS 方法。现在回到你的问题。...specific range such as Row 21:89这里已经有了开始行和结束行,为什么不在 for 循环中使用呢?