Excel VBA实现:A49:A103空白单元格超10个时隐藏后续空白行
解决VBA中定位指定区域第11个空白单元格的问题
要实现你需求的核心是先获取目标区域内所有空白单元格的集合,再通过集合索引定位到第11个空白单元格,以此为起点处理后续的隐藏逻辑。以下是修改后的完整代码:
Sub test() Dim iBlank As Long, rng As Range Dim blankCells As Range Set rng = Range("A49:A103") rng.EntireRow.Hidden = False '统计空白单元格数量 iBlank = WorksheetFunction.CountBlank(rng) '空白数≤10时直接退出,保持所有行可见 If iBlank <= 10 Then Exit Sub '获取区域内所有空白单元格的集合 Set blankCells = rng.SpecialCells(xlCellTypeBlanks) '从第11个空白单元格开始,到A103的空白单元格对应行隐藏 Range(blankCells.Cells(11), "A103").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True End Sub
关键代码说明:
Set blankCells = rng.SpecialCells(xlCellTypeBlanks):获取A49:A103区域内所有空白单元格的集合,这些单元格会按照从上到下的顺序排列在集合中。blankCells.Cells(11):利用VBA集合从1开始计数的特性,直接定位到第11个空白单元格。Range(blankCells.Cells(11), "A103"):构建从第11个空白单元格到A103的范围,再筛选其中的空白单元格并隐藏对应整行。
内容的提问来源于stack exchange,提问作者Kala Shah Jahan
相关产品推荐
相关产品推荐

