2010-06-22 120 views
0

我需要一個宏,它將複製一個工作表中的一列並粘貼到每第五行的另一個電子表格中。我試過使用代碼片段,但是我沒有找到可以修改的代碼來完成這項工作。這讓我瘋狂。我相信對於那些使用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. 

回答

4

我們可以假定這兩個工作表在同一工作簿?如果是的話,它可能看起來像下面的代碼:

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