Excel 对于插入的每一新行,添加值+;1至栏

Excel 对于插入的每一新行,添加值+;1至栏,excel,vba,Excel,Vba,我有一个代码,每次我按下命令按钮时都会插入一个新行。但是,我希望修改代码,以便每次按下命令按钮时,都会在D列(在创建新行的行中)插入一个以“1”开头的值。再次按下按钮并再次插入新行时,D10中将显示“2”,例如,如果前一行插入到第9行中 目前,我有一些代码只添加新行,并粘贴一些我需要的格式/值 `Private Sub CommandButton2_Click() Dim lRow As Long Dim lRsp As Long On Error Resume Next lRow = Se

我有一个代码,每次我按下命令按钮时都会插入一个新行。但是,我希望修改代码,以便每次按下命令按钮时,都会在D列(在创建新行的行中)插入一个以“1”开头的值。再次按下按钮并再次插入新行时,D10中将显示“2”,例如,如果前一行插入到第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`
`Private Sub CommandButton2\u Click()
暗淡的光线和长的一样
变暗lRsp为长
出错时继续下一步
lRow=Selection.Row()
lRsp=MsgBox(“在上方插入新行”&lRow&“?”_
vbQuestion+vbYesNo)
如果lRsp vbYes,则退出Sub
行(lRow)。选择
选择,复制
行(lRow+1)。选择
选择。插入移位:=xlDown
Application.CutCopyMode=False
在创建的新行中粘贴公式和条件格式
行(lRow).粘贴特殊粘贴:=xlPasteFormulas,操作:=xlNone
i=1
范围(“D9”)。值=i
端接头`
试试:

Private子命令按钮2\u单击()
暗淡的光线和长的一样
变暗lRsp为长
出错时继续下一步
lRow=Selection.Row()
lRsp=MsgBox(“在上方插入新行”&lRow&“?”_
vbQuestion+vbYesNo)
如果lRsp vbYes,则退出Sub
行(lRow)。复制“已删除”选择
行(lRow+1)。插入移位:=xlDown“已删除选择”
Application.CutCopyMode=False
'在创建的新行中粘贴公式和条件格式
行(lRow).粘贴特殊粘贴:=xlPasteFormulas,操作:=xlNone
“i=1”已删除
'范围(“D9”)。值=i'已删除
单元格(lrow,4).value=Application.max(第(4)列))+1'已添加
端接头

此外,请尝试返回并删除(如果适用)
Select
Selection
。。。请参见

范围(“D”和lRow)。值=范围(“D”和lRow)。值+1
?是的,在某种意义上。我建议您在下一次错误恢复时删除
。它隐藏了这样一个事实,即您在退出
CutCopyMode
后试图粘贴Special
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