Для каждой новой вставленной строки добавьте значение + 1 к столбцу - PullRequest
0 голосов
/ 11 июля 2019

У меня есть код, который вставляет новую строку каждый раз, когда я нажимаю командную кнопку.Однако я хотел бы изменить код так, чтобы каждый раз, когда я нажимал командную кнопку, значение, начинающееся с «1», вставлялось в столбец D (в строке, где создается новая строка).Когда кнопка нажата снова, и новая строка вставлена ​​снова, «2» появится в D10, например, если предыдущая строка была вставлена ​​в строку 9.

В настоящее время у меня есть код, который просто добавляет новую строку, плюс вставляет форматирование / значения, которые мне нужны.

`Private Sub CommandButton2_Click()

Dim lRow As Long
Dim lRsp As Long
On Error Resume Next

lRow = Selection.Row()
lRsp = MsgBox("Insert New row above " & lRow & "?", _
        vbQuestion + vbYesNo)
If lRsp <> vbYes Then Exit Sub

Rows(lRow).Select
Selection.Copy
Rows(lRow + 1).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False

Paste formulas and conditional formatting in new row created
Rows(lRow).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone
i = 1
Range("D9").Value = i


End Sub`

1 Ответ

0 голосов
/ 11 июля 2019

Попробуйте:

Private Sub CommandButton2_Click()

    Dim lRow As Long
    Dim lRsp As Long
    On Error Resume Next

    lRow = Selection.Row()
    lRsp = MsgBox("Insert New row above " & lRow & "?", _
        vbQuestion + vbYesNo)
    If lRsp <> vbYes Then Exit Sub

    Rows(lRow).Copy 'REMOVED SELECT
    Rows(lRow + 1).Insert Shift:=xlDown 'REMOVED SELECT
    Application.CutCopyMode = False

    'Paste formulas and conditional formatting in new row created
    Rows(lRow).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone
    'i = 1 'REMOVED
    'Range("D9").Value = i 'REMOVED
    cells(lrow,4).value = Application.max(columns(4))+1 'ADDED

End Sub

Кроме того, попробуйте вернуться назад и удалить (где применимо) Select и Selection ... см. Как избежать использования Select в Excel VBA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...