|
本帖最后由 cunfu2010 于 2016-12-21 09:58 编辑
如题,如何用VBA代码实现中文小写转阿拉伯数字
想法:能不能以A列单元格中的字符串为依据进行转换,比如,取每个单元格中的“级”前面的字符串,存到动态数组中,然后判断,如果新取的字符中有一个字符则用InStr("一二三四五六七八九十", Left(arr(i, 1), 1))直接进行转换,如果新取的字符串中有两个字符则分别取第一个、第二个字符用InStr("一二三四五六七八九十", Left(arr(i, 1), 1))转换并用&把转换结果连接,同样,如果新取字符串中有三个字符,依法转换连接。不知道可行不?
- Function DTX(s)
- Dim str$, i%
- s = Replace(s, "级", "")
- str = "〇一二三四五六七八九"
- str2 = Replace(s, "十", "*10+")
- For i = 1 To 10
- str2 = Replace(str2, Mid(str, i, 1), i - 1)
- Next
- If Left(str2, 1) = "*" Then str2 = 1 & str2
- If Right(str2, 1) = "+" Then str2 = Mid(str2, 1, Len(str2) - 1)
- DTX = Evaluate("(" & str2 & ")*1") & "级"
- End Function
- Sub tt()
- Dim arr(), i%
- arr = Sheet1.UsedRange
- For i = 1 To UBound(arr)
- Sheet1.Cells(i, 4) = DTX(arr(i, 1))
- Next
- End Sub
复制代码
|
|