Excel 复制并粘贴数据重复 x

Excel 复制并粘贴数据重复 x

Data A在 Microsoft Excel 中有表格。

我想要做的是复制该数据中的内容并粘贴它乘以X。

假设 X 是 3。

实际的 X 数字是巨大的,因此这里确实需要自动化,而不是复制和粘贴数百次。

在此处输入图片描述

答案1

一些辅助值和INDIRECT工作表函数解决了这个问题:

情况 1:

在此处输入图片描述

怎么运行的:

  • 在单元格中输入期望值G2,表示您想要重复一组数据的次数。
  • 单元格中的行计数器公式G3

=COUNTA(F2:F4)*G2

  • 单元格中的最终公式H2

    =IF(ROW(H2)>G$3+1,"",IF(ISBLANK(INDIRECT("F"&ROW(F2))),INDIRECT("H"&(ROWS($F$2:F2)-(COUNTA(F:F)-2))),F2))
    

注意:

  • 向下填充公式,直到多出几行为止。

情况 2:

在此处输入图片描述

注意:

  • 一旦您更改单元格中的值G2以重复数据集n times,公式就会调整结果column H
  • 您可以根据需要调整公式中的单元格引用。

答案2

您可以尝试此代码。链接到页面上的按钮,它假定输入从 A2 向下,输出将从 Sheet1 上的 C2 向下(更改以适应)。

Sub Duplicate()
Application.ScreenUpdating = False

Dim ws As Worksheet: Set ws = Sheet1
Dim MyCRnge As Range, c As Range
Dim MyX As String
Dim MyArr() As Variant
Dim i As Long, x As Long

Set MyCRnge = ws.Range(ws.Cells(2, 1), ws.Cells(ws.Cells(2, 1).End(xlDown).Row, 1))

MyX = InputBox("Give me a number", "My Duplicator")
If Not IsNumeric(MyX) Then Exit Sub
MyX = CLng(MyX)

ReDim MyArr(MyX * MyCRnge.Rows.Count)
x = 1
For i = LBound(MyArr) To UBound(MyArr) - 1

    MyArr(i) = MyCRnge(x, 1)
    If x = MyCRnge.Rows.Count Then
    x = 1
    Else
    x = x + 1
    End If

Next i

ws.Range(ws.Cells(2, 3), ws.Cells((MyX * MyCRnge.Rows.Count) + 1, 3)) = Application.Transpose(MyArr)

End Sub

相关内容