Excel宏-复制行->;在->;下插入行;粘贴数据

Excel宏-复制行->;在->;下插入行;粘贴数据,excel,vba,insert,copy,paste,Excel,Vba,Insert,Copy,Paste,我有一个贯穿E列(下面示例中的C列)并搜索数据中任何更改的代码。然后在该更改下插入一个空行,并循环遍历数据集(200-500行长)。我正在寻找一种方法来修改/向代码中添加最后一行数据的“复制和粘贴”功能,在更改之前,将其添加到新插入的行中 之前: A列 B栏 C列 E列 1. 2. 俏皮话 5. 1. 2. 俏皮话 6. 1. 2. 俏皮话 2. 1. 2. 追逐 1. 1. 2. 追逐 4. 1. 2. 本 9 编辑:: 请尝试更新的代码: Sub testInsertRowCopyBefor

我有一个贯穿E列(下面示例中的C列)并搜索数据中任何更改的代码。然后在该更改下插入一个空行,并循环遍历数据集(200-500行长)。我正在寻找一种方法来修改/向代码中添加最后一行数据的“复制和粘贴”功能,在更改之前,将其添加到新插入的行中

之前:

A列 B栏 C列 E列 1. 2. 俏皮话 5. 1. 2. 俏皮话 6. 1. 2. 俏皮话 2. 1. 2. 追逐 1. 1. 2. 追逐 4. 1. 2. 本 9
编辑:

请尝试更新的代码:

Sub testInsertRowCopyBefore()
  Dim sh As Worksheet, lastRow As Long, i As Long
  
  Set sh = ActiveSheet
  lastRow = sh.Range("A" & Rows.count).End(xlUp).row
  
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
   For i = lastRow + 1 To 3 Step -1
    If sh.Range("C" & i).Value <> sh.Range("C" & i - 1).Value Then
        sh.Range("C" & i).EntireRow.Insert xlUp
        sh.Range("B" & i & ":C" & i).Value = sh.Range("B" & i - 1 & ":C" & i - 1).Value
    End If
   Next i
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
  MsgBox "Ready..."
End Sub
Sub testInsertRowCopyBefore()
将sh设置为工作表,最后一行设置为长,i设置为长
设置sh=ActiveSheet
lastRow=sh.Range(“A”&Rows.count).End(xlUp).row
Application.ScreenUpdating=False
Application.Calculation=xlCalculationManual
对于i=最后一行+1到3步骤-1
如果sh.Range(“C”&i).值为sh.Range(“C”&i-1).值,则
sh.Range(“C”和i).EntireRow.Insert xlUp
sh.Range(“B”&i&“:C”&i).Value=sh.Range(“B”&i-1&“:C”&i-1).Value
如果结束
接下来我
Application.ScreenUpdating=True
Application.Calculation=xlCalculationAutomatic
MsgBox“就绪…”
端接头
上述代码假定“A列”、“B列”和“C列”是标题,它们位于图纸的第一行

请测试并发送一些反馈