我有一段取拼音声母的代码,希望对你有用。 Option Explicit Option Compare TextPublic Function GetPY(ByVal Value As String) As String
Const c_CC As String = "驁,簿,錯,鵽,樲,鰒,腂,夻,攈,穒,鱳,旀,桛,漚,曝,囕,鶸,蜶,籜,鶩,鑂,韻,咗" Const c_PY As String = "A,B,C,D,E,F,G,H,J,K,L,M,N,O,P,Q,R,S,T,W,X,Y,Z" Dim i As Long Dim j As Long Dim lngChar As Long Dim strChar As String Dim arrCC As Variant Dim arrPY As Variant
arrCC = Split(c_CC, ",") arrPY = Split(c_PY, ",")
For i = 1 To Len(Value) strChar = Mid(Value, i, 1) lngChar = Abs(AscW(strChar)) If lngChar >= 19968 And lngChar <= 40869 Then '只处理中文字符 For j = 0 To 22 If strChar <= arrCC(j) Then strChar = arrPY(j) Exit For End If Next j End If GetPY = GetPY & strChar Next i
Option Explicit
Option Compare TextPublic Function GetPY(ByVal Value As String) As String
Const c_CC As String = "驁,簿,錯,鵽,樲,鰒,腂,夻,攈,穒,鱳,旀,桛,漚,曝,囕,鶸,蜶,籜,鶩,鑂,韻,咗"
Const c_PY As String = "A,B,C,D,E,F,G,H,J,K,L,M,N,O,P,Q,R,S,T,W,X,Y,Z" Dim i As Long
Dim j As Long
Dim lngChar As Long
Dim strChar As String
Dim arrCC As Variant
Dim arrPY As Variant
arrCC = Split(c_CC, ",")
arrPY = Split(c_PY, ",")
For i = 1 To Len(Value)
strChar = Mid(Value, i, 1)
lngChar = Abs(AscW(strChar))
If lngChar >= 19968 And lngChar <= 40869 Then
'只处理中文字符
For j = 0 To 22
If strChar <= arrCC(j) Then
strChar = arrPY(j)
Exit For
End If
Next j
End If
GetPY = GetPY & strChar
Next i
End Function