2013-10-17 218 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

相关问题