Excel VBA - 重新启动数字序列

问题描述 投票:0回答:1

我有一个工作表,允许用户将数据输入到特定单元格和提供数字序列的 vba 代码。

数字序列位于 A 列和 N 列中,并且均从第 7 行开始。

当用户点击按钮时,代码会创建一个新的空行,其中包含序列中的下一个数字,可供用户输入数据。

A 列可以从 001 到 999 开始,但不得达到 1000,并且必须采用“000”数字格式 N 列可以从 01 到 99 开始,但不得达到 100,并且必须采用“00”数字格式。

当前代码如下所示,但缺少在 A 列中的“001”和 N 列中的“01”处重新启动的指令。

任何帮助将不胜感激!

    IncreaseSeqNumber = Range("A8").Value
    IncreaseSeqNumber1 = Replace(IncreaseSeqNumber, "", "")
    IncreaseSeqNumber2 = IncreaseSeqNumber1 + 1
    IncreaseSeqNumber3 = IncreaseSeqNumber2
 
    Range("A7").Value = IncreaseSeqNumber3
    Range("A7").NumberFormat = "000"

    IncreaseCalSeqNumber = Range("N8").Value
    IncreaseCalSeqNumber1 = Replace(IncreaseCalSeqNumber, "", "")
    IncreaseCalSeqNumber2 = IncreaseCalSeqNumber1 + 1
    IncreaseCalSeqNumber3 = IncreaseCalSeqNumber2

    Range("N7").Value = IncreaseCalSeqNumber3
    Range("N7").NumberFormat = "00"
excel vba
1个回答
0
投票

快速浏览一下会发现,如果您的值达到限制,请在循环内重置它,例如:

    With Sheets(1)
            Dim a As Long:  a = a + 1
            If a = 1000 Then a = 1
            .Cells(i, "A").Value = a
            Dim n As Long:  n = n + 1
            If n = 100 Then n = 1
            .Cells(i, "N").Value = n

您还可以设置整列的格式:

        .Columns("A").NumberFormat = "000"
        .Columns("N").NumberFormat = "00"
    End With
© www.soinside.com 2019 - 2024. All rights reserved.