我有两张纸:
Sheet1包含许多行,其中包含大量数据。每一行在A列中都有一个唯一的编号。
来自sheet1中行的所有这些数据都被复制到sheet2,其中包含一个简单的= sheet1!$ A $ 1等。
有时/很多次我在sheet2中需要多行(精确副本)的副本,此时我在sheet2中手动插入新行,我将上面的行复制到新创建的行。
现在,如果我在sheet1中插入一个新列,我可以定义在sheet2中必须创建的副本数量,这对我来说非常好并且非常节省时间。如果我之后可以更改副本数量(在sheet1中),如果我错误地在那里打错了数字,那么也会很好,然后excel会自动删除那里的副本数量,从最后一行创建。
关于如何做到这一点的任何想法?
我尝试过的代码:
Sub copy()
Set i = Sheets("Sheet1")
Set e = Sheets("Sheet2")
Dim d
Dim j
d = 1
j = 2
Do Until IsEmpty(i.Range("Q" & j))
If i.Range("Q" & j) = "TERM" Then
d = d + 1
e.Rows(d).Value = i.Rows(j).Value
End If
j = j + 1
Loop
End Sub
答案 0 :(得分:0)
这不会非常有效,但您可以这样做的方法是在Sheet1中使用两个额外列。
您希望C列为累计计数。要做到这一点,你必须:
C1: =B1
C2: =C1+B2
向下拖动C2
现在,在表2中,您可以输入以下公式作为阵列公式
A1: =INDEX(Sheet1!A:A,MATCH(TRUE,Sheet1!C:C>=ROW(),0))
(为了使它成为一个数组公式,一旦你输入它,用 ctrl + shift + 输入完成。)
向下拖动,第2页,A1向下移动很多行,当您更改工作表1的B列中的值(重复A列中的值的次数)时,它会更新
希望这可以解决问题!