唯一的办法就是VBA:
Function Getpy(ByVal X As String) As String
Dim i As Integer
For i = 1 To Len(X)
If Mid(X, i, 1) <> " " And Asc(Mid(X, i, 1)) < 0 Then Getpy = Getpy & pinyin(Mid(X, i, 1))
Next
Getpy = UCase(Getpy)
End Function
Function pinyin(ByVal X As String) As String
Dim i As Integer
Const hanzi = "啊芭擦搭蛾发噶哈击喀垃妈拿哦啪期然撒塌挖昔压匝座ABCDEFGHJKLMNOPQRSTWXYZZ"
If X = "座" Then pinyin = "Z"
For i = 1 To 23
If Asc(X) >= Asc(Mid(hanzi, i, 1)) And Asc(X) < Asc(Mid(hanzi, i + 1, 1)) Then
pinyin = Mid(hanzi, 24 + i, 1)
Exit For
End If
Next
End Function