ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何在规定列里输入拼音则替换成国家名(姓名)?

如何在规定列里输入拼音则替换成国家名(姓名)?

作者:绿色风 分类: 时间:2022-08-17 浏览:152
楼主
wcymiss
Q:A列是一些国家的中文名字,如何在B列某单元格输入A列国家中文名字的拼音首字母,入ZG,则该单元格立马被替换成“中国”?
A:vba代码如下:

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim i%, arr, brr, vl(1 To 23, 1 To 2), hzb$, zmb$, py$, d, ls$
  3.     Set d = CreateObject("scripting.dictionary")
  4.     If Target.Count > 1 Then Exit Sub
  5.     If Target.Column <> 2 Then Exit Sub
  6.     hzb = "吖,八,嚓,咑,鵽,发,猤,铪,夻,咔,垃,嘸,旀,噢,妑,七,囕,仨,他,屲,夕,丫,帀"
  7.     zmb = "A,B,C,D,E,F,G,H,J,K,L,M,N,O,P,Q,R,S,T,W,X,Y,Z"
  8.     For i = 1 To 23
  9.         vl(i, 1) = Split(hzb, ",")(i - 1)
  10.         vl(i, 2) = Split(zmb, ",")(i - 1)
  11.     Next
  12.     arr = Range([a1], Cells(Cells(Rows.Count, 1).End(3).Row, 1))
  13.     For i = 1 To UBound(arr)
  14.         py = ""
  15.         For j = 1 To Len(arr(i, 1))
  16.             On Error Resume Next
  17.             ls = Application.VLookup(Mid(arr(i, 1), j, 1), vl, 2)
  18.             If Err = 0 Then
  19.                 py = py & ls
  20.             End If
  21.         Next
  22.         d(py) = arr(i, 1)
  23.     Next
  24.     Application.EnableEvents = False
  25.     Target.Value = d(UCase(Target.Value))
  26.     Application.EnableEvents = True
  27.     Set d = Nothing
  28. End Sub


输入拼音则替换成国家名.rar
2楼
い卋玑┾宝珼
不错哦

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap