复制活动单元格行并直接在下面插入复制的行

我正在尝试复制活动单元格行,并希望直接在该行下面插入复制的行。 像这样:

Row 1 < User clicks relevant cell to trigger macro (Active Row) Row 2 < Copied Cell gets inserted directly beneath Active Row 

我希望这种情况发生,即使有一行已经在我的活动行下方,也就是说,当用户点击复制活动行时:

 Row 1 < Active Row Row 2 < Other Content 

会变成这样:

 Row 1 < Active Row Row 2 < Copied Cell gets inserted directly beneath Active Row Row 3 < Other Content 

这是我的代码,我试图拼凑在一起,没有运气:

 'Add Tender Type Row Dim NextRow As Range Set NextRow = Range("B" & Sheets("Home").ActiveCell.Rows.Count + 1) If Not Intersect(Target, Range("AF" & ActiveCell.Row)) Is Nothing And Range("AF" & ActiveCell.Row).Value = "+" Then Sheet1.Range("B" & ActiveCell.Row & ":AF" & ActiveCell.Row).Copy Sheet1.Activate NextRow.PasteSpecial Paste:=1, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False End If 

请有人可以告诉我正确的方法来做到这一点?

你定义的NextRow是错误的,你用Sheets("Home").ActiveCell.Rows.Count + 1而不是ActiveCell.Row + 1

试试这个:

 Sub Mark_Harris() Dim Ws As Worksheet, _ NextRow As Range If Target.Cells.Count > 1 Then Exit Sub Set Ws = ActiveWorkbook.Sheets("Home") With Ws If Not Intersect(Target, .Range("AF" & ActiveCell.Row)) Is Nothing And .Range("AF" & ActiveCell.Row).Value = "+" Then .Rows(ActiveCell.Row + 1).Insert Shift:=xlDown Set NextRow = .Range("B" & ActiveCell.Row + 1) .Range("B" & ActiveCell.Row & ":AF" & ActiveCell.Row).Copy NextRow.PasteSpecial Paste:=1, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End If End With Application.CutCopyMode = False End Sub