Excel (求助)用VBA自动提取不重复姓名

Excel (求助)用VBA自动提取不重复姓名,第1张

举例说明。

例如有表格如图:

要求将A列姓名取出后去除重复值,然后输出到C列。

第一步:点击开发工具-visual basic。选择sheet1,输入代码如下:

Sub 姓名去重()

Dim jgArr(1 To 100)

zz = 0

Sheets("sheet1")Activate

Set zd = CreateObject("scriptingdictionary")

hh = 2

Do While Cells(hh, 1) <> ""

If Not zdexists(Cells(hh, 1)Text) Then

zdAdd Cells(hh, 1)Text, zz

zz = zz + 1

jgArr(zz) = Cells(hh, 1)Text

End If

hh = hh + 1

Loop

'输出结果

Range("c2:c100000")ClearContents

For i = 1 To zz

Cells(2 + i - 1, 3) = jgArr(i)

Next i

End Sub

第二步:点击宏,选择去除重复宏。如图:

点击执行,结果如图:

如何用函数提取姓名的拼音。这是个有趣的问题。其实excel里没有这样的函数直接自动提取出汉字的拼音的。不过呢,凡事有例外,excel里藏着一个函数PHONETIC函数,这个函数是提取单元格里代表拼音信息的字符串的。也就是说单元格里必须有拼音信息。

因此呢,要提取拼音信息,要么单元格里有拼音了,要么呢只能写VBA去处理。当然不用VBA,也可以做个汉字和对应拼音的字库关系表,然后用VLOOKUP查找函数去查找。

这里介绍一种用PHONETIC函数结合word软件来实现提取拼音的方法。

1,复制姓名列,粘贴到word里

2,在word里,点击右下角粘贴智能标记,选择“仅保留文本”

3,选中word里的姓名文字(一般一次能一次性添加13组拼音,如果要添加拼音的汉字比较多,多选择几次多设置几次),开始-字体-拼音指南,拼音指南里,字号调大一些,确定

4,复制添加了拼音的汉字,粘贴到excel里某空列

5,用函数PHONETIC取得单元格里的拼音信息字符串,C2=PHONETIC(B2)

VBA:思路应该是利用汉字的ASCII编码与拼音的对应关系建立一个映射,不过同一个拼音对应的汉字的ASCII码并不完全连续,本来拼音的组合就多,还得一个个输ASCII码,这个工作量就很大了。反正我不会,会也懒得写,标记下坐等高人解答,哈哈哈。

工作表函数:楼主去找个拼音与汉字的对应表,把名字拆分成单个的字,利用vlookup查找,后面那个首字母用left函数就行,最后用连接符&连接起来就搞定了。

以上就是关于Excel (求助)用VBA自动提取不重复姓名全部的内容,包括:Excel (求助)用VBA自动提取不重复姓名、如何提取姓名里的拼音、怎么能把姓名变成姓的全称加名的首字母等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9776657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存