在 MS Excel 中,是否可以设置单元格内容语言(例如每列)?目的之一是,当内容是多语言(例如字典)时,进行正确的拼写检查,就像我们在 MS Word 中所做的那样。
答案1
这是一个快速而粗略的宏,希望您可以根据自己的需求进行调整。现在,它将在 上运行美式英语拼写检查Column A
,然后在 上运行墨西哥西班牙语拼写检查Column B
。您可以找到受支持语言的代码这里。
Sub multilanguageSC()
Dim rngEng As Range, rngSpa As Range
'Set ranges to check for each language.
Set rngEng = ActiveSheet.Range("A:A")
Set rngSpa = ActiveSheet.Range("B:B")
'Set spelling dictionary language to English (US).
Application.SpellingOptions.DictLang = 1033
'Check spelling for designated English range.
rngEng.CheckSpelling
'Set spelling dictionary language to Spanish(Mexico).
Application.SpellingOptions.DictLang = 2058
'Check spelling for designated Spanish range.
rngSpa.CheckSpelling
'Set spelling dictionary back to default setting.
Application.SpellingOptions.DictLang = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
End Sub
答案2
是的,可以做到。以下是日语和英语输入的示例。(您可以针对要允许的日语输入类型进行不同的设置。)
我使用“数据”选项卡上的“输入规则”。(我必须将“选项”、“语言”、“编辑语言”设置为“日语”)
只需转到“数据”选项卡,然后从“数据工具”组中选择“条件规则”。现在右侧会有一个名为“日语输入”的新选项卡。将一列设置为“开”,另一列设置为“关”,即可开始。
看起来它们也可以用 VB 完成。不过不确定单元格范围。
Sub Cond()
'
' Cond Macro
'
'
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeOn
.ShowInput = True
.ShowError = True
End With
End Sub