Public Function Pinyin(MyStr As String) As String
If Len(Trim(MyStr)) = 0 Then
Pinyin = ""
Exit Function
End If
i As Long
For i = 1 To Len(MyStr)
j = asc(Mid(MyStr, i, 1))
Select Case j
Case -20319 To -20284: Pinyin = Pinyin + "A"
Case -20283 To -19776: Pinyin = Pinyin + "B"
Case -19775 To -19219: Pinyin = Pinyin + "C"
Case -19218 To -18711: Pinyin = Pinyin + "D"
Case -18710 To -18527: Pinyin = Pinyin + "E"
Case -18526 To -18240: Pinyin = Pinyin + "F"
Case -18239 To -17923: Pinyin = Pinyin + "G"
Case -17922 To -17418: Pinyin = Pinyin + "H"
Case -17417 To -16475: Pinyin = Pinyin + "J"
Case -16474 To -16213: Pinyin = Pinyin + "K"
Case -16212 To -15641: Pinyin = Pinyin + "L"
Case -15640 To -15166: Pinyin = Pinyin + "M"
Case -15165 To -14923: Pinyin = Pinyin + "N"
Case -14922 To -14915: Pinyin = Pinyin + "O"
Case -14914 To -14631: Pinyin = Pinyin + "P"
Case -14630 To -14150: Pinyin = Pinyin + "Q"
Case -14149 To -14091: Pinyin = Pinyin + "R"
Case -14090 To -13319: Pinyin = Pinyin + "S"
Case -13318 To -12839: Pinyin = Pinyin + "T"
Case -12838 To -12557: Pinyin = Pinyin + "W"
Case -12556 To -11848: Pinyin = Pinyin + "X"
Case -11847 To -11056: Pinyin = Pinyin + "Y"
Case -11055 To -10247: Pinyin = Pinyin + "Z"
Case -9254: Pinyin = Pinyin + "Z" ''圳
Case -3589: Pinyin = Pinyin + "Q" ''覃
Case -32185: Pinyin = Pinyin + "C" ''侴
Case Else: Pinyin = Pinyin
End Select
Next i
End Function