你可以去搜一下类型转换的方法。 a和b都是string型,需要首先对a进行正则表达式处理,将字符串头部的字符提取(比如存为ch),然后后面的纯数字单独保存(比如存为num)。之后再将单独保存的string型纯数字num转换成相应的数值型,这里为integer。最后把这个整型值与同样转换成整型的b相加,再转换回string型。然后append到ch就可以了。代码网上很多,自己去搜索一下就好了。主要是类型转换和正则表达式的简单操作。Regards, Sean
这样不简单些啊: Public Function strAdd(s1 As String, s2 As String) As String Dim i As Integer Dim s As String For i = 1 To Len(s1) If Asc(Mid(s1, i, 1)) > Asc("0") And Asc(Mid(s1, i, 1)) <= Asc("9") Then Exit For Next i strAdd = Left(s1, i - 1) & (Val(Mid(s1, i, Len(s1))) + Val(s2)) End Function 这是默认为第二个b是一个数值型的字符串Print strAdd("k00001", "1") 结果是:k00002
如果a、b的数值出现有规律的话,可以这样: a = 1 b = 1 c = a + b c = "k" & Format(c, "0000") MsgBox c
a和b都是string型,需要首先对a进行正则表达式处理,将字符串头部的字符提取(比如存为ch),然后后面的纯数字单独保存(比如存为num)。之后再将单独保存的string型纯数字num转换成相应的数值型,这里为integer。最后把这个整型值与同样转换成整型的b相加,再转换回string型。然后append到ch就可以了。代码网上很多,自己去搜索一下就好了。主要是类型转换和正则表达式的简单操作。Regards,
Sean
Public Function strAdd(s1 As String, s2 As String) As String
Dim i As Integer
Dim s As String
For i = 1 To Len(s1)
If Asc(Mid(s1, i, 1)) > Asc("0") And Asc(Mid(s1, i, 1)) <= Asc("9") Then Exit For
Next i
strAdd = Left(s1, i - 1) & (Val(Mid(s1, i, Len(s1))) + Val(s2))
End Function
这是默认为第二个b是一个数值型的字符串Print strAdd("k00001", "1")
结果是:k00002
a = 1
b = 1
c = a + b
c = "k" & Format(c, "0000")
MsgBox c