如果单元格包含拼写错误的单词,我将尝试删除整行。如果删除一行,则会跳过一行,从而错过可能紧接在另一行之后出现的任何拼写错误的单词。
这是代码:
Sub DeleteMispelledCells()
For Each cl In ActiveSheet.UsedRange
If Not Application.CheckSpelling(Word:=cl.Text) Then _
cl.EntireRow.Delete
Next cl
End Sub
我知道问题是 cl 没有考虑到当前行已被删除,但我不知道如何纠正这个问题。我还知道,如果循环从最后一行运行到第一行,而不是从第一行运行到最后一行,它也会被纠正。但是,我也不知道该怎么做。
最佳答案
为了以相反的顺序循环每一行,您将执行以下操作:
Sub DeleteMispelledCells()
Dim lRow As Long, cl As Range
With ActiveSheet
For lRow = .UsedRange.Rows.Count To 1 Step -1
For Each cl In .Rows(lRow)
If Not IsEmpty(cl) Then
If Not Application.CheckSpelling(Word:=cl.Text) Then
cl.EntireRow.Delete
Exit For
End If
End If
Next cl
Next lRow
End With
End Sub
我不能 100% 确定我的所有语法都正确,因为我不在可以测试它的计算机上,但它至少应该为您提供一个开始的地方。
关于Excel VBA 如果单词拼写错误则删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29756687/