清除A列中空单元格的内容

时间:2018-01-29 15:03:18

标签: excel vba

我可以请求你的帮助。我的高级过滤器不起作用,因为列A在空单元格中具有不可见的内容。为了使其工作,我需要VBa代码,它将选择从A7到A200的所有单元格并清除仅空白单元格的内容。

2 个答案:

答案 0 :(得分:3)

如果 1 列中的公式单元格正在返回 Null ,并且您想清除它们:

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

备注:

  • 使用OnError可以避免在列已经“干净”时出现问题
  • 使用ClearContents只保留单元格格式。

修改#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

答案 1 :(得分:2)

只需使用SpecialCells

Range("A7:A200").SpecialCells(xlCellTypeBlanks).ClearContents