有一些场合,要用到汉字的首字母缩写,而Excel中并没有这样一个函数,可以直接提取汉字的首字母。不过拓展性极强大的VBA给提供了无限的可能。
今天就在这里介绍一下,如何用自定义函数,来实现提取汉字首字母的功能。

前期准备工作(包括相关工具或所使用的原料等)
Office2007VBA详细的操作方法或具体步骤
首先,打开Excel,同时按下Alt+F11键,打开VBE界面,如下图所示。在VBE界面中,单击图片中所示的左上角空白处,选择“插入“,”模块“。

此时,就插入了一个模块,后面的代码就要放到这个模块中,保证右侧空白区域是模块代码的编辑区(最保险的做法是双击模块),然后执行下一步操作。

将下面的代码全部复制粘贴到空白区域。
Function pinyin(p As String) As String
i=Asc(p)
Select Case i
Case -20319 To -20284: pinyin="A"
Case -20283 To -19776: pinyin="B"
Case -19775 To -19219: pinyin="C"
Case -19218 To -18711: pinyin="D"
Case -18710 To -18527: pinyin="E"
Case -18526 To -18240: pinyin="F"
Case -18239 To -17923: pinyin="G"
Case -17922 To -17418: pinyin="H"
Case -17417 To -16475: pinyin="J"
Case -16474 To -16213: pinyin="K"
Case -16212 To -15641: pinyin="L"
Case -15640 To -15166: pinyin="M"
Case -15165 To -14923: pinyin="N"
Case -14922 To -14915: pinyin="O"
Case -14914 To -14631: pinyin="P"
Case -14630 To -14150: pinyin="Q"
Case -14149 To -14091: pinyin="R"
Case -14090 To -13319: pinyin="S"
Case -13318 To -12839: pinyin="T"
Case -12838 To -12557: pinyin="W"
Case -12556 To -11848: pinyin="X"
Case -11847 To -11056: pinyin="Y"
Case -11055 To -2050: pinyin="Z"
Case Else: pinyin=p
End Select
End Function
Function getpy(str)
For i=1 To Len(str)
getpy=getpy & pinyin(Mid(str, i, 1))
Next i
End Function

然后关闭这个新界面,返回Excel,就可以像Excel自带的函数一样使用这个自定义的Getpy函数了,它只有一个参数,参数可以直接指定单元格,也可以直接输入字符。

需要注意的是,Getpy函数,只返回汉字拼音的首字母,如果是其他的字母或者数据等非汉字文本,会返回原来的值,如下图所示:

好了,关于Excel中如何用函数实现提取汉字的首字母的经验就介绍到这里。如果有什么不明白的地方,可以联系作者。欢迎阅读作者的其他百度经验,提高Excel能力。
注意事项
这个自定义函数的原理是什么呢?其实很简单,就是通过判断汉字的ASCII码,来转换为指定的字母,然后再利用一个简单的单个汉字的提取,来实现对一串汉字提取首字母的功能。上面的函数是提取首字母大写,明白了这个道理,就可以很轻松地改为首字母小写了。如果经常要用到这个函数,可以将模块导入为加载项,然后加在到Excel中,这样就几乎相当于Excel自带的函数,随时可以使用了。关于加载项的设置,可以看一下我的另外一篇经验。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
