忽略拼写检查中的文本框

时间:2018-07-10 10:39:55

标签: excel vba excel-vba spell-checking

我正在尝试创建一个仅对特定单元格进行拼写检查的宏。我已经成功地对单元格进行了拼写检查,但是由于某种原因,拼写检查向导随后继续运行,并尝试检查电子表格上的所有文本框。

下面是代码:

Range(“C8”).Select
Selection.CheckSpelling SpellLang:=1034

使用建议更新代码,但是该代码仍在拼写检查文本框:

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

Const dummyCell = "Z999" 'address of an empty cell
Dim cellsToCheck As Range

Set cellsToCheck = ws.Range("C8")

Union(Range(dummyCell), cellsToCheck).CheckSpelling

我循环浏览,并且正在拼写检查文本框之前在“ CellsToCheck”中指定的实际范围。

1 个答案:

答案 0 :(得分:1)

以编程方式检查单个单元格的拼写没有对话框

如果要以编程方式检查单个单元格上的拼写,并且不希望显示“拼写”对话框,则可以使用 CheckSpelling方法,因为该方法适用于{{1} }对象。

Application

通过对话框 以编程方式检查单个单元格的拼写

如果您确实希望显示“拼写检查”对话框,但只想检查一个单元格,则需要“欺骗Excel”。 Excel旨在,如果您只选择了一个单元格,则假定您实际上要检查整个工作表。

Sub checkSpelling_NoDialog()

    Dim correctlySpelled As Boolean, textToCheck As String

    textToCheck = Range("A1")
    correctlySpelled = Application.checkSpelling(textToCheck)

    If Not correctlySpelled Then
        MsgBox "Incorrect Spelling of: " & textToCheck
    Else
        MsgBox "Correct Spelling of: " & textToCheck
    End If

End Sub

herehere概述了有关Sub checkSpelling_WithDialog() Const dummyCell = "Z999" 'address of an empty cell Dim cellsToCheck As Range Set cellsToCheck = Range("A1") Union(Range(dummyCell), cellsToCheck).checkSpelling End Sub 方法的更多信息。