1 回答

TA贡献1799条经验 获得超9个赞
实现的方法很多,下面随便给出一种用结构体实现的方法:
Private Type MyDict '定义一个源字符与目的字符的结构体
Src As String '源字符,如“a”
Dest As String '转换后的目的字符,如"12"
End Type
Private Function Convert(s As String) As String
'函数说明:
'参数s,是需要转换的源字符串,如a1b
'返回值:转换后的字符串,如123123
'注:函数本身不限制源字符串长度
Dim MyDictList(5) As MyDict '用于存储转换规则的数组,可根据具体要求修改数组大小
Dim i, j As Integer '循环变量
Dim TempRes As String '用于存储临时结果的临时变量
TempRes = ""
Convert = ""
'开始定义详细的转换规则
MyDictList(0).Src = "a"
MyDictList(0).Dest = "12"
MyDictList(1).Src = "1"
MyDictList(1).Dest = "31"
MyDictList(2).Src = "b"
MyDictList(2).Dest = "23"
MyDictList(3).Src = "c"
MyDictList(3).Dest = "24"
MyDictList(4).Src = "2"
MyDictList(4).Dest = "14"
MyDictList(5).Src = "d"
MyDictList(5).Dest = "41"
'关键的转换部分
For i = 1 To Len(s)
TempRes = Mid(s, i, 1)
For j = 0 To UBound(MyDictList)
If MyDictList(j).Src = Mid(s, i, 1) Then
TempRes = MyDictList(j).Dest
Exit For
End If
Next
Convert = Convert & TempRes
Next
End Function
使用方法:把上述代码复制过去以后,直接调用Convert函数,如
MsgBox Convert("a1b")
即可在对话框中弹出结果
添加回答
举报