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

我知道问题是 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/

相关文章:

excel - 为什么 Word 有 Application.Activate 方法,而 Excel 没有?

excel - 从 range.formula 函数获取错误消息

vba - Excel VBA - 为什么包含数字的分割字符串的算术比较有效?

excel - 循环遍历形状并执行 IncrementLeft

vba - 将公式填充到最后使用的列的右侧

c# - 如何将 datagridview 单元格格式值导出到 Excel?

excel - VBA 范围内的字符串函数

excel - 如何编译单元格中存在的文本? (优秀)

vba - 如何使用 vba 将单元格值作为图表标题

excel - 如何根据另一个单元格文本更改匹配字符串的文本字符串颜色