嵌套循环无法正常运行

这是代码的输出。它除去了这个单元格之外的所有参考错误 我有一个嵌套循环,首先使用for循环将所有ref单元格更改为白色字体,并在sub for循环中删除ref单元格。 代码运行,但仍有一个或两个参考错误的单元格。 将需要帮助来整理代码,以便它可以删除所有引用错误,而不是大部分的引用错误! 谢谢 。

Sub Delete_ref_basedontextcondition() Dim R As Range Dim w As Long, ref As Range Dim refi As Range On Error Resume Next 'Set rng = Nothing On Error Resume Next Set R = Application.InputBox("Select cells To be deleted", Type:=8) Dim rng As Range If TypeName(R) <> "Range" Then Exit Sub Else R.Delete End If For w = 1 To Worksheets.Count With Worksheets(w) For Each ref In .Cells.SpecialCells(xlCellTypeFormulas, xlErrors) If ref.Text = "#REF!" Then ref.Font.ColorIndex = 2 For Each refi In .Cells.SpecialCells(xlCellTypeFormulas, xlErrors) If refi.Text = "#REF!" Then refi.Delete End If Next refi End If Next ref End With Next w End Sub 

我相信stream氓#REF! 实际上是由refi.Delete创build的,所以它被创build之前定义的循环遗漏了。 改用refi.Clear 。 你只是想删除坏的公式; 你不想删除单元格并移动其他单元格(从而创build新的#REF!错误)。

把它想象成一个装满#REF的佩斯饮水机! 错误。 每当你出来一个,另一个来取代它的地方。 closures盖子。 .Clear而不是螺旋通过popup与.Delete