我正在研究隐藏空单元格的代码,但问题是我希望它开始隐藏在某个范围内(“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
程序从头开始一直隐藏单元格,如何设置它以便从我想要的范围中删除它。请帮忙。
答案 0 :(得分:4)
您甚至可以将代码缩短为:
.JPEG
因此,For i = 9 To 12
Cells(i, 1).EntireRow.Hidden = IsEmpty(Cells(i, 1).Value)
Next i
属性的结果取决于Hidden
是否为空。它更容易理解和维护。
答案 1 :(得分:3)
检查以下解决方案。如果您需要更改受影响的区域,只需更改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
答案 2 :(得分:3)
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
或忽略:
{{1}}
答案 3 :(得分: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