2017-07-19 87 views
1

我有一个任务关键型工作簿,它根据用户在单元格中输入的输入执行一堆查找。如果用户输入的东西看上去像自动更正的错字,则用户输入会错误地更正。例如,当用户键入“cna”时,自动更正将其更改为“可以”,这通常是好事,但在这种情况下是坏事。我们要查找“cna”。简单的解决方案是关闭自动更正,但我们希望/喜欢自动更正,而不是在这一个用户输入单元中。防止自动更正Excel中的一个单元格

如何保持应用程序/工作簿的自动更正状态,但是阻止有问题的用户输入单元格(单元格)自动更正?

我研究了一下,无法找到一种方法来关闭一个单元的自动校正功能。这似乎是一个全球性的环境。

我看了,没有发现自动更正之前发生的事件,所以我可以捕获“cna”,让自动更正正确的值为“can”,关闭事件,然后更改它回到“cna”。例如,该值已经是“可以”时,触发此事件:

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

我不想加入“CNA”,以可接受的自动更正的单词列表,因为我想“中央社”来被修正为“可以”在所有单元中,但是所讨论的用户输入单元。

+1

添加worksheet_OnSelect子说如果所需的目标单元格被选中,则关闭自动更正,并为所有其他单元格打开 – Tragamor

+0

工作正常!谢谢!如果你创建一个答案,我会给你信誉。否则,我可以。 – mountainclimber

回答

1

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

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 
0

使用Flephal的评论,这是我如何解决它:

​​
相关问题