将多个 Unicode 值转换为 Excel 电子表格中的相应文本

将多个 Unicode 值转换为 Excel 电子表格中的相应文本

如果我的 Unicode 字符在 Excel 单元格中包含多个十六进制值,如何在 Excel 中编写函数将其转换为相应的字符?

例如:Excel 单元格中的 Unicode 十六进制值:0B15 0B4D 0B37。由上述值组成的字符:(କ୍ଷ奥里亚语/印度语)

答案1

使用如下数据:

在此处输入图片描述

安装以下内容驅動已定义F涂油礼(UDF)

Public Function qwerty(r As Range) As Variant
   Dim L As Long, CH As String, CH2 As String
   arr = Split(ActiveCell.Text, " ")
   For Each a In arr
      L = Application.WorksheetFunction.Hex2Dec(a)
      CH = ChrW(L)
      CH2 = CH2 & CH
   Next a
   qwerty = CH2
End Function

然后选择一些单元格,比如单元格B1,将其格式化为Arial Unicode MS并输入:

=qwerty(A1)

在此处输入图片描述

用户定义函数 (UDF) 非常容易安装和使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除 UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要从 Excel 使用 UDF:

=qwerty(A1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

答案2

我让它工作是因为我需要同样的东西。

Public Function qwerty(r As Range) As Variant
   Dim arr() As String
   Dim CH As String, CH2 As String
   Dim a As Variant
   a = 0
   arr = Split(r.Text, " ", -1, vbTextCompare)
   For Each a In arr
      CH = Application.WorksheetFunction.Unichar(a)
      CH2 = CH2 & CH
   Next a
   qwerty = CH2
End Function

相关内容