复制活动单元格行并直接在下面插入复制的行
我正在尝试复制活动单元格行,并希望直接在该行下面插入复制的行。 像这样:
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
- 如何在Excel中使用VBA进行REST调用?
- Excel VBA:分配给数据validation菜单的macros
- Excel到XML – 复制最高级别的logging
- Excelmacros可更改单元格alignment方式,边框和换行文本(如果已将值input到同一行中的另一个单元格中)
- 如何总结符合条件的一列数据
- 使用C#Interop.Excel删除NamesManager中的重复名称
- 我怎样才能获得一系列的excel单元格,并使内容成为一个单一的string来迭代,而不是迭代每个单独的string?
- 通过Power Query在Excel中的Smartsheet数据
- 保存为xls工作簿时删除所有的macros/ vba