在VBA中拼写检查Excel工作表

我search了互联网,发现了一些可能的解决scheme,但是我也想在这里问一下。

目标是点击一个button,并拼写检查整个工作表。

这是一些代码

Sub spellCheck() Sheet1.Cells.CheckSpelling End Sub 

另外,我发现这个:

 Sub SpellCheck() Dim Checkword As String, Result As Boolean Checkword = Selection.Value Result = Application.CheckSpelling(Checkword) Selection.Offset(0, 1) = Result End Sub 

有任何想法吗? 两个都不为我工作。 谢谢!

您可以通过执行以下操作来检查整个工作簿:

 Sub SpellCheck() For Each sh In Worksheets Sheets(sh.Name).Cells.CheckSpelling Next End Sub 

这将循环遍历整本书中的每一张纸,并对每一张纸进行拼写检查。 我还不知道的是如何使拼写检查实际移动到拼写错误的位置。 所以,上面你只是得到一个拼写错误列表,没有上下文来评估他们。

这个代码将在选定的单元格上工作。这将突出显示单元格中是否有拼写错误

 Dim Myrange As Range Selection.SpecialCells(xlVisible).Select For Each Myrange In Selection If Application.CheckSpelling(word:=Myrange.Value) = False Then Myrange.Font.Color = vbRed End If Next 

我注意到我的代码中只有一个错字。

下面的作品:

 Sub spellCheck() Sheet1.Cells.CheckSpelling End Sub 

但是,如果有人知道如何做整个工作簿,我会对此感兴趣。 谢谢。

好的,所以你可以使用下面的命令来调用工具栏的拼写检查器,只要你启用了屏幕更新,就可以将你移动到拼写错误的位置。

 Application.CommandBars("Tools").Controls("Spelling...").Execute 

您可以使用embedded在上述循环中的此命令遍历工作簿中的工作表,并在每个新工作表上调用此命令。

这将使用先前答案中的代码片段将用于拼写检查的区域限制到特定的区域。 我需要做一个小项目。 这给出了上下文中显示错误的拼写检查器的完整function。 rowNumber在其他地方计算。select范围可以完全控制在您的代码中的其他地方,以满足您的特定需求。 以为这可能会帮助其他人search这个post。

  With Sheets("Sheet1") slic = CStr(rowNumber) .Range("AL3:AN" & slic).Select Application.CommandBars("Tools").Controls("Spelling...").Execute End With 

感谢以前的海报,这解决了我的一个问题。 我很感激。