我有一列包含基于英语/基本拉丁字符的标题的标题,例如:John Smith和非西方/扩展的基于 Unicode 字符的标题,例如:??? 或比约克
如何检查 B 列中的单元格是“普通”英文标题还是相反的标题?
任何指示/建议将不胜感激!
提前致谢。
您可以在 VBA 代码模块中输入此 UDF。
Function IsLatin(Str As String) As Boolean
IsLatin = True
For i = 1 To Len(Str)
IsLatin = IsLatin And Abs(AscW(Mid(Str, i, 1)) - 64) < 64
Next i
End Function
Run Code Online (Sandbox Code Playgroud)
然后,如果您的文本在 A 列中,请在单元格 B1 中输入=IsLatin(A1)并向下填充。
...或者在 Excel 2013 中,您可以使用这个通过 CTRL+SHIFT+ENTER 确认的数组公式:
=AND(UNICODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<128)
也是从B1往下填的。
注意:CODE不能用于此,因为它将 unicode 转换为拉丁字母,例如 =CODE("?"),=CODE("a")两者都返回 63