复制和编号行" n"使用Excel VBA的次数

时间:2017-12-05 19:45:57

标签: vba

我写了一些VBA代码来提示复制行的次数。我现在想要按顺序为L列中的行添加一个要素编号。

Sub InsertRows()
    Dim I As Long, J As Integer, x As Integer, N As Long

    N = InputBox("type the number of rows to be inserted")

    For I = Range("A65000").End(xlUp).Row To 1 Step -1
'        MsgBox Range("A1").Value & vbNewLine & J
        x = N
            For J = 1 To N - 1
                Rows(I + J).Insert xlDown
                Rows(I).Copy
                Rows(I + J).PasteSpecial
                Range("L" & J).Value = J
            Next
    Next
    Range("A1").Select
    Application.CutCopyMode = False
End Sub

例如,如果我输入" 3"在消息框中,每个原始项目的行将复制3次,但列L中的值将不会正确地顺序编号1-3。这里出了什么问题?

结果如下:

Result

1 个答案:

答案 0 :(得分:0)

循环逻辑101 ......这里有多个问题。

首先,在您的3示例中,"rows to be inserted"实际上不是3.因为您使用N-1,所以您只插入2行。因此,您的J计数已关闭。

另外,Range("L" & J).Value只会更改第1行和第2行。由于您从botom开始执行所有操作,因此它永远不会将任何内容设置为原始行3.它只会将2设置为原始行第2行。原始第1行混合了12。因此,您需要将I偏移量添加到该等式中的J值。

另外,为什么在x从未使用过的时候分配给它?

希望有所帮助。 :)