2013-10-17 214 views
0

因此,我有一個工作簿,其中有兩張工作表。我需要將工作表2(「細節」)中的數據複製到工作表1(「Syncrofit」)。來自ws2的項目我需要粘貼到表格1上的漸進行中,因此表格2中的行B列(稱爲「Joint1-1」)需要插入到表格1中的行1下方。這基本上會創建一個嵌套表格。Excel VBA:從一個工作表複製到另一個

這是我迄今爲止,大多是從代碼和幫助張羅,我發現在這裏:

Sub SelectJoints() 
Sheets("Detail").Activate 
Dim Selection1 As Integer, Selection2 As Integer 
Dim SelectionRange As Range 
Dim num As Integer 


Dim rngFind As Range 
Set rngFind = Columns("B:B").Find(what:="*" & "Joint1-" & num, After:=Range("B1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext) 

If Not rngFind Is Nothing Then 
    Selection1 = rngFind.Row + 1 
End If 

Set rngFind = Columns("B:B").Find(what:="*Joint1-" & num + 1, After:=Range("B1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext) 

If Not rngFind Is Nothing Then 
    Selection2 = rngFind.Row - 1 
End If 

If Selection1 > 0 And Selection2 > 0 Then 
    Set SelectionRange = Range(Cells(Selection1, 2), Cells(Selection2, 6)) 
End If 

末次

在這裏的意圖是,這應該激活細節單,在列B中找到匹配「SomeTextHere(Joint1-1)」的字符串並選擇這些行。然後,我需要它將這些選擇粘貼到表單1(在第1行下面,其中一列中的值爲「Joint」值),返回到表2,選擇包含「SomeTextHere(Joint1-2 )「並粘貼到下一行下面(剛剛插入的那些之後)。我意識到,粘貼部分不在代碼中。這一直使我瘋狂。

請原諒我對VBA的知識不足。

我想成品看起來像一個嵌套表有點像如下:

   Original Items 
Copied from sheet 2 
Copied from sheet 2 
Copied from sheet 2 
       Original Item 2 
Copied from sheet 2 
etc. 

任何幫助是極大的讚賞,感謝,

回答

1

我有點無聊,所以我颳起了什麼這可能會幫助你。請讓我知道這對你有沒有用。

Sub Macro1() 

Dim i, j, x 
Dim rng As Range 
Dim sh1 As Worksheet 
Dim sh2 As Worksheet 
Set sh1 = Sheets("Syncrofit") 
Set sh2 = Sheets("Detail") 

lr = sh2.Range("B" & Rows.Count).End(xlUp).Row 
lc = sh2.Cells(2, Columns.Count).End(xlToLeft).Column 


j = 2 
For y = 1 To 3 ' set upper limit of first integer in Joint string 
    For x = 1 To 2 ' set upper limit of second integer in Joint string 
     For i = 2 To lr 
      If InStr(sh2.Cells(i, 2), "Joint" & y & "-" & x) <> 0 Then 
       sh2.Range(sh2.Cells(i, 1), sh2.Cells(i, lc)).Copy 
       sh1.Rows(j).Insert 
       j = j + 1 
      End If 
     Next i 
    Next x 
Next y 
End Sub 
+0

啊,優秀的,應該給我一個好的開始。它添加了所有的值,但我需要它來插入行,所以應該只是常規粘貼而不是粘貼值,是正確的?還有Joints 2-xx,3-xx等,但我應該可以爲主數字添加一個變量,或者複製/粘貼joint2-x,3-x等的代碼。謝謝! – user2892425

+0

嗯。所以你的意思是,而不是僅僅將值粘貼在對方下面,你想插入行嗎?如果這就是你想要的,我修改了代碼來做到這一點......並且還有一個額外的循環來處理聯合Y-X部分。 – stobin

+0

將它們作爲行插入,但它將複製4列並在整行上重複它。另外,我需要它跳到下一行插入工作表2中的下3行,以便它基本上在兩張表之間構建一個嵌套表。我編輯了OP,讓我舉例說明我的意思 – user2892425

相關問題