
有小伙伴提问:EXCEL中如何根据汉字返回对应拼音首字母大写?



英文字母、数字、符号的 Asc 编码是正数(比如 A=65,a=97,0=48);
简体中文字符在 VBA 的 Asc 函数中,返回的是负的数字编码(范围大概在-20319 ~ -2050之间);
咱们的 VBA 代码就是把这个负数区间按拼音首字母划分(比如 A 对应-20319 ~ -20284,B 对应-20283 ~ -19776),判断第一个字的编码落在哪个区间,就返回对应的首字母。

Function GetFirstPY(rng As Range) As StringDim strText As String, firstChar As StringstrText = Trim(rng.Value)If strText = "" Then Exit FunctionfirstChar = Left(strText, 1)Dim PY As StringSelect Case Asc(firstChar)Case -20319 To -20284: PY = "A"Case -20283 To -19776: PY = "B"Case -19775 To -19219: PY = "C"Case -19218 To -18711: PY = "D"Case -18710 To -18527: PY = "E"Case -18526 To -18240: PY = "F"Case -18239 To -17923: PY = "G"Case -17922 To -17418: PY = "H"Case -17417 To -16475: PY = "J"Case -16474 To -16213: PY = "K"Case -16212 To -15641: PY = "L"Case -15640 To -15166: PY = "M"Case -15165 To -14923: PY = "N"Case -14922 To -14915: PY = "O"Case -14914 To -14631: PY = "P"Case -14630 To -14150: PY = "Q"Case -14149 To -14091: PY = "R"Case -14090 To -13119: PY = "S"Case -13118 To -12839: PY = "T"Case -12838 To -12557: PY = "W"Case -12556 To -11848: PY = "X"Case -11847 To -11056: PY = "Y"Case -11055 To -2050: PY = "Z"Case Else: PY = firstChar '非汉字原样返回End SelectGetFirstPY = UCase(PY)End Function
关注我,学习更多高效办公技巧!
#办公技能#办公软件#职场技能#职场办公#wps#VBA#EXCEL函数
关注老师,点底部头像到主页,点右上角“…”,设为星标,才不错容易过精彩教程哦。

往期干货文章学习推荐:
Office2021专业版安装教程及安装包【已激活免费下载】
WPS打开宏文件提示“无权限”及宏“被禁止”怎么办?【插件限时领取】
【工具限时领取】用OUTLOOK轻松实现不同人不同内容的邮件群发
你还要手工加班算考勤?!1秒完成百人考勤,HR熬夜加班终结者
分享高效办公技巧及免费自动化模版,避免以后需要找不到,请您持续关注哦