复制并粘贴每第N行

问题描述:

我需要一个宏,它将复制一个工作表中的一列并粘贴到每第五行的另一个电子表格中。我试过使用代码片段,但是我没有找到可以修改的代码来完成这项工作。这让我疯狂。我相信对于那些使用VB代码更高级的人来说这很容易。复制并粘贴每第N行

复制到A列是空

[Workbook1] 
Column A 
Name1 
Name2 
Name3 
Name4 
etc. 


[Workbook2] 
Column A 
Paste Name1 in Row 5 
Paste Name2 in Row 10 
Paste Name3 in Row 15 
Paste Name4 in Row 20 
etc. 

我们可以假定这两个工作表在同一工作簿?如果是的话,它可能看起来像下面的代码:

Sub Test() 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 
Dim lngRowCounter As Long 
Dim lngRowMultiplier As Long 


lngRowCounter = 1 
lngRowMultiplier = 5 

Set ws1 = Worksheets("Sheet1") 
Set ws2 = Worksheets("Sheet2") 

Do While Not IsEmpty(ws1.Range("A" & lngRowCounter)) 
    ws2.Range("A" & lngRowCounter * lngRowMultiplier).Value = _ 
    ws1.Range("A" & lngRowCounter).Value 
    lngRowCounter = lngRowCounter + 1 
Loop 

End Sub 

您可以在Sub的内容粘贴到您的宏功能,或者您可以在您的宏模块底部粘贴代码,并把线代码Call Test在你的宏里面。

我希望这会有所帮助。

+0

这真是太棒了。实际上,他们不在同一本工作手册中 - 两本单独的工作手册,但我可以试着弄清楚。我感谢帮助! – valerie 2010-06-22 15:57:48

+0

@valerie。如果工作表在不同的工作簿中,您应该只需执行以下操作:1)确保在同一个Excel“会话”中打开工作簿,以便他们可以相互交谈(从“我的文档”文件夹或其他文件夹中打开它们都应该确保这个工作正常) - 2)你需要修改代码的部分,这些部分说''=工作表(“Sheet1”)'包含工作簿,我认为它就像'... =工作簿( “WorkbookSample1”)。工作表( “工作表Sheet”)'。我不确定确切的语法,但我认为这就是它的工作原理。让我知道结果如何。 – 2010-06-22 17:06:25

+0

精美的作品 - 这就是语法。天才! – valerie 2010-06-22 18:20:27