2014-01-13 113 views
1

我看了看周圍的論壇和各種選擇播放,但沒有找到我的問題一個明確的比賽:使用從一個工作表複製多行到另一個工作表的宏/ VBA

我的任務是將數據從一個複製工作表(稱爲「工作單」)到第二個工作表(稱爲「工作分配」)。要複製的數據來自「工作單」工作表,從單元格範圍「E2,P2:S2」開始;並且還從每行(相同範圍)複製,直到列「P」爲空 - (每次我們需要運行此宏以使我們不能選擇標準範圍時,要複製的行數可能會有所不同)。然後粘貼到「作業」工作表中,從單元格「A4」開始。到目前爲止,我已經使用論壇成功複製了一行日期(從第2行開始) - 我承認這很容易,我已經使用各種版本的代碼來實現這一點。 我也嘗試了一些代碼(我通過觀看YouTube剪輯並修改了http://www.youtube.com/watch?v=PyNWL0DXXtQ)以允許我運行一個循環,該循環爲「工作單」工作表中的每個所需行重複複製過程,然後將數據粘貼到「作業」工作表 - 但這是我沒有得到它正確的地方,我認爲我沿着正確的路線,認爲我不遠處,但任何幫助將是非常有用的。下面(第2只複製第一行,第三個例子是

代碼示例,我一直在努力,循環和複製多行:

Sub CopyTest1() 
' CopyTest1 Macro 
'copy data from workorders sheet 
'Worksheets("workorders").Range("E2,P2,Q2,R2,S2").Copy 
Worksheets("workorders").Range("E2, P2:S2").Copy 
'paste data to assignments sheet 
'sheets("assigments dc").Range("A4").Paste 
Sheets("Assigments DC").Select 
Range("A4").Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 
End Sub 




Sub CopyTest2() 
Sheets("workorders").Range("e2,p2,q2,r2,s2").Copy Sheets("assigments dc").Range("a4") 
End Sub 


Sub CopyTest3() 
Dim xrow As Long 
'Dim xrow As String 
xrow = 2 
Worksheets("workorders").Select 
Dim lastrow As Long 
lastrow = Cells(Rows.Count, 16).End(xlUp).Row 
Do Until xrow = lastrow + 1 
ActiveSheet.Cells(xrow, 16).Select 
If ActiveCell.Text = Not Null Then 
'Range("E2,P2,Q2,R2,S2").Copy 
'Selection = Range("E2,P2,Q2,R2,S2").Copy 
'Cells(xrow, 5).Copy 
Cells(xrow, 5).Copy 
Sheets("Assigments DC").Select 
Range("A4").Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 
Sheets("workorders").Select 
End If 
xrow = xrow + 1 
Loop 
End Sub 

回答

1

試試這個:

​​

第一和測試閱讀評論。

讓我們知道這是否有幫助。

+0

謝謝BK201 這似乎很好地工作:-) – dan1974

+0

@ dan1974:謝謝你的接受。祝你好運! – Manhattan

1

從我所看到的,你只是在複製列的單元格E.你可以用

Union(Sheets("workorders").Cells(xrow,5),Sheets("workorders").Range(Cells(xrow,"P"),Cells(xrow,"S")).Copy 

但是更換Cells(xrow, 5).Copy,使用SelectCopy不理想更正此相反,您可以直接指定範圍內的值。

Sheets("Assignments DC").Range("A4").Value = Union(Sheets("workorders").Cells(xrow,5),Sheets("workorders").Range(Cells(xrow,"P"),Cells(xrow,"S")).Value 

有關the Union methodwhy using Select is bad的更多信息。

0

是否可以像這樣運行一條線?每一次我嘗試不同的方法來複制/選擇一個範圍,其中包含我的情況下,A3和範圍A34:C40(範圍(E2),P2:S2) 「A3,A34:C40」)。複製我得到一個錯誤,告訴他們許多參數..難道這是因爲我正在運行excel 2007?

任何提示或幫助將大大apreciated! :)

相關問題