我正在尝试编写一个 VBA 宏来隐藏可见单元格全部为空的行。这意味着,可见单元格全部为空但仍有非空值的隐藏单元格的行也应该被隐藏。
不幸的是,我使用的代码仅隐藏了没有非空值的隐藏单元格的行:
'==========================================
' Hide Empty Rows
'==========================================
Sub hideEmptyRows()
' Set variables
Dim i As Integer
Dim lngLastCell As Long
' Get last cell
lngLastCell = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
' Turn screen updating off
Application.ScreenUpdating = False
' Loop from 3rd to last cell
For i = 3 To lngLastCell
' Check if row has any values
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
' Hide row
Rows(i).Hidden = True
End If
Next i
' turn screen updating on
Application.ScreenUpdating = True
End Sub
答案1
您可以使用.SpecialCells() 方法与单元格类型可见计算时的参数.CountA()
如下:
If Application.WorksheetFunction.CountA(Rows(i).SpecialCells(xlCellTypeVisible)) = 0 Then