Sub ClearAlmostMothing()
Dim rng As Range
On Error Resume Next
Set rng = Columns(1).SpecialCells(xlCellTypeFormulas)
For Each r In rng
If r.Value = "" Then r.ClearContents
Next r
On Error GoTo 0
End Sub
NOTES:
使用 OnError 如果列已经"clean",则避免出现问题
使用 ClearContents 单独保留单元格格式 .
EDIT#1:
这个版本在我的电脑上稍快一些:
Sub ClearAlmostMothing2()
Dim rng As Range, rClear As Range
Set rClear = Nothing
On Error Resume Next
Set rng = Range("A7:A400").SpecialCells(xlCellTypeFormulas)
For Each r In rng
If r.Value = "" Then
If rClear Is Nothing Then
Set rClear = r
Else
Set rClear = Union(rClear, r)
End If
End If
Next r
rClear.ClearContents
On Error GoTo 0
End Sub
2 回答
如果列 1 中的 formula 单元格返回Null并且您想要清除它们:
NOTES:
使用
OnError
如果列已经"clean",则避免出现问题使用
ClearContents
单独保留单元格格式 .EDIT#1:
这个版本在我的电脑上稍快一些:
只需使用
SpecialCells
: