首页 文章

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

提问于
浏览
-2

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

2 回答

  • 3

    如果列 1 中的 formula 单元格返回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
    

    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

    只需使用 SpecialCells

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

相关问题