隐藏空单元格
我目前正在处理隐藏空单元的代码,但问题是我希望它开始隐藏在某个范围(“A9:A12”)不是在工作表的开始。 这里是我的程序:
Sub EmptyRow() 'Dim s As String po = Range("A9:A12").Count Range("A8").Activate For i = 1 To po s = i & ":" & i If IsEmpty(Cells(i, 1).Value) Then Rows(s).Select Selection.EntireRow.Hidden = True End If Next End Sub
程序不断从一开始就隐藏单元格,我如何设置它,使它从我想要的范围中删除。 请帮忙。
检查下面的解决scheme。 如果您需要更改受影响的区域,只需更改targetRange
的值。
Sub EmptyRow() Dim targetRange as Range, po as Long, i as Long Set targetRange = Range("A9:A12") po = targetRange.Count With targetRange For i = 1 To po If IsEmpty(.Cells(i, 1).Value) Then .Rows(i).EntireRow.Hidden = True End If Next End With End Sub
Sheets("Sheet1").Range("A9:A12").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
如果没有find单元格, SpecialCells
导致运行时错误,但可以检查:
If [CountBlank(Sheet1!A9:A12)] Then _ [Sheet1!A9:A12].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
或被忽略:
On Error Resume Next [Sheet1!A9:A12].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
你甚至可以缩短你的代码,如下所示:
For i = 9 To 12 Cells(i, 1).EntireRow.Hidden = IsEmpty(Cells(i, 1).Value) Next i
因此, Hidden
属性的结果将取决于Cells(i,1)
是否为空。 这是更容易理解和维护。
你可以去掉像select
这样的位
Sub EmptyRow() For i = 9 To 12 If IsEmpty(Cells(i, 1).Value) Then Cells(i, 1).EntireRow.Hidden = True End If Next i End Sub