在行中查找#REF 并删除单元格

Find #REF in Row and Delete Cell

我有一个 Excel 2010 年的电子表格,有时会出现引用错误。我想清除该特定行中的单元格; IE。清除第 7 行中包含引用错误的所有单元格。我遇到了一些麻烦。

Sub Check_Ref()

Dim rng As Range
Dim rngError As Range
Dim cell as 'something

Set rng = Sheets("All Projects").Range("AE7:AK7")

Dim rngError As Range
Set rngError = rng.SpecialCells(xlCellTypeFormulas, xlErrors)

If Not rngError Is Nothing Then
    For Each cell In rngError
        'Clear the cell
    Next
End If

End Sub

这就是我目前所拥有的。我不知道如何实际清除单元格。任何帮助都会很棒。

不需要循环:

Sub Check_Ref()

   Dim rng As Range
   Dim rngError As Range

   Set rng = Sheets("All Projects").Range("AE7:AK7")
   Set rngError = rng.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)

   If Not rngError Is Nothing Then
       rngError.Clear
   End If

End Sub

编辑#1

如果在工作表上没有发现错误,则禁用错误:

Sub Check_Ref()

   Dim rng As Range
   Dim rngError As Range

   Set rng = Sheets("All Projects").Range("AE7:AK7")
   On Error Resume Next
       Set rngError = rng.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
   On Error GoTo 0
   If Not rngError Is Nothing Then
       rngError.ClearContents
   End If

End Sub

如果您想隔离 #REF 错误,建议您更具体地了解如何处理从 SpecialCells 返回的 xlErrors

Sub Check_Err()

Dim rng As Range
Dim rng2 As Range
Dim rngError As Range

Set rng = Sheets("All Projects").Range("AE7:AK7")
On Error Resume Next
Set rngError = rng.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
On Error GoTo 0
If Not rngError Is Nothing Then
    For Each rng2 In rngError
       If rng2.Value2 = CVErr(xlErrRef) Then rng2.ClearContents
    Next
End If
End Sub