递增序列vba

时间:2019-01-17 22:26:42

标签: excel vba

我的序列将类似于0000-16x, 0001-16x, 0002-16x, … ,9999-16x 我想编写一个将读取值之一并将其递增1的宏。例如如果读取的是0014-16x,则代码将返回0015-16x

仅当单元格的内容为全数字时,我的代码才有效

Dim name As Variant
name = ActiveCell
name = name + 1
ActiveCell.Offset(1, 0).Activate
ActiveCell.FormulaR1C1 = name

如何增加一个序列,就像我的序列一样?谢谢

4 个答案:

答案 0 :(得分:3)

没有错误检查:

Function NextSequence(v)
    Dim arr
    arr = Split(v, "-")
    NextSequence = Format(CLng(arr(0)) + 1, "0000") & "-" & arr(1)
End Function

答案 1 :(得分:1)

让我们用“-”定界符分割字符串,将数字增加1,附加零并重新设置我们的字符串-试一下:

Sub Increment()

    Dim name As Variant
    Dim firsthalf As String, secondhalf As String

    name = Split(ActiveCell, "-")(0)
    secondhalf = Split(ActiveCell, "-")(1)
    name = name + 1

    Select Case Len(name)
        Case 1
            firsthalf = "000" & name
        Case 2
            firsthalf = "00" & name
        Case 3
            firsthalf = "0" & name
        Case 4
            firsthalf = name
    End Select

    ActiveCell.Offset(1, 0).Activate
    ActiveCell.FormulaR1C1 = firsthalf & "-" & secondhalf

End Sub

答案 2 :(得分:1)

自从我的手机发布信息以来,我目前无法测试,但是您可以将Split()函数与-分隔符一起使用,并将1添加到{{1 }}数组的位置,将其重新连接在一起并用0填充,直到其长度为8。

示例:

(0)

答案 3 :(得分:0)

这是非VBA解决方案,FWIW ...

=TEXT(LEFT(A1,FIND("-",A1)-1)+1,"0000")&"-"&MID(A1,FIND("-",A1)+1,99)

在单元格A1中带有0000-16x,在单元格A2中具有公式。只需填充即可扩展。