2014-12-02 118 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

相關問題