如何复制excel中的每一行并将其粘贴到复制的行下

时间:2018-03-26 07:38:42

标签: excel

我正在寻找一种方法来复制工作表中的每一行并将其粘贴到原始行下。

目前:

1 | abc | def
2 | ghi | jkl
3 | mno | pqr

我的目标:

1 | abc | def
2 | abc | def
3 | ghi | jkl
4 | ghi | jkl
5 | mno | pqr
6 | mno | pqr

希望这是有道理的!

3 个答案:

答案 0 :(得分:2)

这是一种不需要花式公式或宏/ VBA的方法。只需复制整个顶部块,在这种情况下为三行,然后立即粘贴到下面。然后按第一个ID列排序,该列将原始行与其副本分组。最后,在所有行中生成一个新的ID序列,从顶部开始。作为一系列步骤:

  1. 复制原始数据并粘贴到
  2. 下面
  3. 在数字ID列
  4. 上对新的+复制数据进行排序
  5. 生成第一行以1开头的新ID列

答案 1 :(得分:1)

也许你可以这样做:

  1. 将整个表格复制到另一张表格
  2. 为两个表
  3. 创建一个id列
  4. 为主表提供奇数ID号,并为复制的表提供偶数ID号
  5. 将复制的表复制并粘贴到主表并按ID排序主表,然后删除id列并删除复制的表。

答案 2 :(得分:0)

vba假设范围没有间隙

Option Explicit

Sub Testing()

Dim targetRange As Range
Dim sourceData()

With ActiveSheet.Range("A1").CurrentRegion

    sourceData = .Value2
    Set targetRange = .Resize(.Rows.Count * 2, .Columns.Count)

End With

Dim currValue As Long
Dim counter As Long
counter = 1

For currValue = LBound(sourceData, 1) To UBound(sourceData, 1)

    targetRange.Cells(counter, 1).Resize(2, UBound(sourceData, 2)) = Application.WorksheetFunction.Index(sourceData, currValue, 0)
    counter = counter + 2

Next currValue

End Sub

A1:B3中的源数据

Start layout