使用vba清除工作表中不包含公式的所有单元格?

时间:2016-08-24 13:57:34

标签: excel vba excel-vba

我使用以下代码清除剂量不包含公式的所有细胞。

Sub DoNotContainClearCells()


Dim rng As Range
Dim cell As Range
Dim ContainWord As String

'What range ?
  Set rng = Worksheets("Datenbasis").Range("A5:Z100")

'What I am looking for?
  ContainWord = "="


  For Each cell In rng.Cells
    If cell.Find(ContainWord) Is Nothing Then cell.Clear
  Next cell

End Sub

但是我得到了运行时错误1004,只删除了第一列。我该如何处理这个错误?有没有更好的方法从不含配方的纸张中删除细胞?

2 个答案:

答案 0 :(得分:3)

考虑:

Sub DoNotContainClearCells()    
    Dim rng As Range
    Set rng = Worksheets("Datenbasis").Range("A5:Z100")
    rng.Cells.SpecialCells(xlCellTypeFormulas).Clear
End Sub

修改#1:

如果您希望清除包含公式的单元格,那么:

 Sub DoNotContainClearCells()    
        Dim rng As Range
        Set rng = Worksheets("Datenbasis").Range("A5:Z100")
        rng.Cells.SpecialCells(xlCellTypeConstants).Clear
    End Sub

将单独留下公式单元格!。

答案 1 :(得分:1)

尝试使用以下

Sub DoNotContainClearCells()
    Dim rng As Range
    Dim cell As Range
    'What range ?
    Set rng = Worksheets("Datenbasis").Range("A5:Z100")
    For Each cell In rng.Cells
      If Not cell.HasFormula Then cell.Clear
    Next cell
End Sub