我有一个数据表,包括;
A栏:人名和号码,例如:Alexander25(文字和数字)
B栏:人员代码,例如:AD-4(文字和数字)
C列:人的RingName例如:Alex Cooper(仅文本)
在表中,每列填写A列和B列,而C列是可选的(有时确实有,有时没有)。我想使用VBA创建新列来组合所有这些列来制作这样的东西;
D栏:Alex025 Cooper:AD-4
这只适用于C列存在的情况。列C的名称可能与列A具有相同的文本,但我只想采取不同的内容。例如,如果名字是亚历山大,而戒指名称是Alex Cooper,我只想要只选择Cooper。数量有所不同,最多只能达到3位数。如果数字是;
1位数 - 00x
2位数 - 0xx
3位数 - xxx
如果可能的话,赞赏任何意见。谢谢stackoverflow.com
答案 0 :(得分:1)
你可以用这个:
Option Explicit
Sub main()
Dim cell As Range
For Each cell In Range("C1", Cells(Rows.Count, 3).End(xlUp))
cell.Offset(, 1).Value = Split(cell.Value, " ")(0) & Format(GetLastDigits(cell.Offset(, -2)), "000") & " " & Split(cell.Value, " ")(1) & ": " & cell.Offset(, -1).Value
Next
End Sub
Function GetLastDigits(strng As String) As String
Dim i As Long
Do While IsNumeric(Right(strng, i + 1))
i = i + 1
Loop
GetLastDigits = Right(strng, i)
End Function