2014-12-02 89 views
-2

我有两个工作表:根据单元格值在Excel中复制和删除线条

工作表1包含许多行,其中包含大量数据。每行在列A中都有一个唯一编号。

所有这些来自sheet1中行的数据都通过简单= sheet1!$ A $ 1等复制到sheet2中。

有时/很多时候我需要sheet2中的行(精确复制)的多个副本,此刻我手动在sheet2中插入一条新行,并且将上面的行复制到新创建的行。

现在,如果我在sheet1中插入一个新列,我可以定义在sheet2中必须创建多少个副本,这对我来说将会非常好,非常省时。如果我以后可以更改副本数量(在表1中),如果我错误地在那里打了错误的数字,然后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 
+1

你到目前为止尝试过什么?请分享一些您的代码,以便我们可以帮助您陷入困境。 SO不是一个代码外包平台。有关更多详细信息,请参阅http://stackoverflow.com/help/on-topic。 – Chrismas007 2014-12-02 21:16:13

+0

我已经尝试了一些VBA具有:'子拷贝() 集合I =表( “工作表Sheet”) 集合E =表( “Sheet 2中”) 昏暗d 昏暗Ĵ d = 1 J = 2 直到IsEmpty(i.Range(“Q”&j)) 如果i。范围( “Q” &J)= “TERM” 那么 d = d + 1个 e.Rows(d)。价值= i.Rows(J)。价值 结束如果 当J = J + 1 环路 End Sub' – 2014-12-02 21:55:46

+0

当我在列Q中输入TERM文本时,该代码确实奏效,但它只是根据天气TERM存在或不存在将行从一张复制到另一张。我希望它根据Q栏中的数字复制多次。 – 2014-12-02 21:58:23

回答

0

这不会是非常有效的,但你可以做到这一点的方法是将具有在Sheet1 两个额外列。

  1. 正如你所说,B列将是你希望列A的值为的重复次数。
  2. 你想要列C是一个累计数。要做到这一点,你必须:

    C1: =B1 
    C2: =C1+B2 
    

    将C2下来现在

  3. ,在表2中,你可以把下面的公式在作为数组公式

    A1: =INDEX(Sheet1!A:A,MATCH(TRUE,Sheet1!C:C>=ROW(),0)) 
    

    (使其成为数组公式,输入后,用ctrl + 移位 + 输入

  4. 拖动,表2,A1下来很多行和更改在片材1(的次数的B列中的值以重复在列A的值,该值将更新)

希望这个窍门!

+1

为什么downvotes ??? – 2014-12-02 21:17:27

+2

似乎对你是否应该回答由于“太宽泛”或不适合本网站而被低估的问题持异议。我看到人们都在争论的两边都下来了,但是我被告知(当我在坏问题上发表回答时)我不应该回答,因为问题最终会被搁置或删除。 – Chrismas007 2014-12-02 21:46:46

+0

您能否详细说明一下?我无法弄清楚这是如何工作的。我必须在哪里创建列以及需要将哪些数据放入它们中。我有索引线作为数组公式工作。 – 2014-12-02 21:54:21

相关问题