我有一个任务关键型工作簿,它基于单元格中的用户输入输入执行大量查找。如果用户输入看似拼写错误的内容,则用户输入会错误地更正。例如,当用户键入" cna"自动更正将其更改为" can",这通常是一件好事,但在这种情况下是一件坏事。我们想查找" cna"。简单的解决方案是关闭自动更正,但我们希望/喜欢自动更正,而不是在这一个用户输入单元格中。
如何为应用程序/工作簿保持自动更正,但是阻止对相关用户输入单元格(一个单元格)进行自动更正?
我研究了一下,无法找到一种方法来关闭一个细胞的自动校正。这似乎是一个全球性的背景。
我查看并且没有找到自动更正之前发生的事件,因此我可以捕获" cna",让自动更正更正值to" can",关闭事件,然后将其更改回" cna"。例如,该值已经是" can"触发此事件时:
Private Sub Worksheet_Change(ByVal Target As Range)
debug.print target.value '<- returns "can" already
End Sub
我不想添加&#34; cna&#34;到可接受的自动更正单词列表,因为我想&#34; cna&#34;被纠正为&#34; can&#34;在所有单元格中,但用户输入了相关单元格。
答案 0 :(得分: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
答案 1 :(得分:0)
使用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