卡片召唤师
精华
|
战斗力 鹅
|
回帖 0
注册时间 2015-10-2
|
楼主 |
发表于 2019-8-15 21:56
|
显示全部楼层
【s1高手如云】excel问题请教(转型vba自学分享贴)
前情还是那样,不玩游戏开始研究计算游戏数据。
游戏里有些装备是用罗马数字的。众所周知,不如阿拉伯数字输入方便,所以就想能不能输入阿拉伯数字,然后自动变为罗马数字。
然后就有了最近每天只有一点点能自由用电脑的睡前空闲也要花在上网查资料,vba实验中。
代码如下:
- Sub AraToRom()
- Set Rng = [A2]
- Dim wo As String, Rom As String, Ara As Integer
-
- For i = 1 To Len(Rng)
- If Mid(Rng, i, 1) Like "[0-9]" Then
- wo = Left(Rng, i - 1)
- Ara = Right(Rng, 1)
- Rom = WorksheetFunction.roman(Ara)
- Range("A2").Value = wo & Rom
- End If
- Next i
- End Sub
复制代码 因为装备名还是比较简单,右侧第一个字符为数字,中间没有数字,所以通过for语句找到数字开始的位置,截取前面的字符串,之后转换最后一个数字为罗马数字。最后字符串合并。
还要想想如果数字在前面or在中间,或者有多个不同位置,不同位数的数字,如何都转换。
|
|