防止自动更正Excel中的一个单元格

我有一个任务关键型工作簿,根据用户在单元格中input的input执行一系列查找。 如果用户input看起来像打字错误的东西来自动更正 ,用户input会被错误地纠正 。 例如,当用户键入“cna”时,自动更正将其更改为“可以”,这通常是好事,但在这种情况下是坏事。 我们要查找“cna”。 简单的解决scheme是closures自动更正,但我们希望/像自动更正,而不是在这一个用户input单元格。

如何保持应用程序/工作簿的自动更正,但是防止自动更正有问题的用户input单元格(一个单元格)?

我研究了一下,并找不到一种方法来closures一个单元格的自动更正。 这似乎是一个全球性的环境。

我看,没有发现自动更正之前发生的事件,所以我可以捕获“CNA”,让自动更正正确的价值“可以”,closures事件,然后改回“CNA” 。 例如,当这个事件被触发时,该值已经是“可以”

Private Sub Worksheet_Change(ByVal Target As Range) debug.print target.value '<- returns "can" already End Sub 

我不想将“cna”添加到可接受的自动更正单词的列表中,因为我希望“cna”在所有单元格(而不是用户input单元格)中被更正为“可以”。

有一些进一步的错误检查你可以做,所以你可能更喜欢以下function:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Application.AutoCorrect.ReplaceText = IIf(Target = Me.Range("input_cell"), False, True) End Sub 

使用Flephal的评论,这是我解决它的方法:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = ThisWorkbook.Sheets("input sheet").Range("input_cell").Address Then Application.AutoCorrect.ReplaceText = False Else Application.AutoCorrect.ReplaceText = True End If End Sub