2

我搜索了互联网,找到了一些可能的解决方案来解决这个问题,但我也想在这里问一下。

目标是单击一个按钮,然后拼写检查整个工作表。

这是一些代码

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

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

4

5 回答 5

3

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

Sub SpellCheck()

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

End Sub

这将循环浏览整本书中的每一张纸,并对每一张纸进行拼写检查。我还想不通的是如何使拼写检查器实际移动到拼写错误的位置。因此,通过上述内容,您只会得到一个拼写错误列表,而没有上下文来评估它们。

于 2014-04-11T08:55:31.673 回答
1

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

以下作品:

Sub spellCheck()

Sheet1.Cells.CheckSpelling

End Sub

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

于 2012-08-21T14:50:46.870 回答
1

此代码将适用于选定的单元格。如果单元格中有任何拼写错误,这将突出显示

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
于 2014-04-11T09:52:05.480 回答
0

好的,因此您可以使用以下命令调用工具栏的拼写检查器,只要您当时启用了屏幕更新,它就会将您移动到拼写错误的位置。

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

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

于 2014-04-11T09:07:52.180 回答
0

这使用先前答案中的代码片段将用于拼写检查的区域限制为特定区域。我需要在一个小项目中做的事情。这提供了拼写检查器的完整功能,并在上下文中显示错误。rowNumber在其他地方计算。选择范围可以在代码的其他地方完全控制,以满足您的特定需求。认为这可能有助于其他人搜索此帖子。

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

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

于 2014-05-04T02:07:45.793 回答