Fre*_*III 2 excel vba excel-vba
如果单元格包含拼写错误的单词,我试图删除整行.如果删除了一行,则跳过一行,从而丢失可能在另一行之后直接出现的拼写错误的单词.
这是代码:
Sub DeleteMispelledCells()
For Each cl In ActiveSheet.UsedRange
If Not Application.CheckSpelling(Word:=cl.Text) Then _
cl.EntireRow.Delete
Next cl
End Sub
Run Code Online (Sandbox Code Playgroud)
我理解问题是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
Run Code Online (Sandbox Code Playgroud)
我并非100%确定我已经掌握了所有语法,因为我不是在我可以测试它的计算机上,但它至少应该给你一个开始的地方.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |