2014-07-06 98 views
-1

我是VBA新手。這個想法是循環應該在列A中的過程中將每個單元格放入單元格「B1」中。vba loop複製並粘貼到特定單元

現在它做了什麼,它將數據複製到右側的列中,但我希望它到達頂端。

該代碼現在就做到這一點。
它將A1的內容移動到B1,A2到B2,A3到B3等。想法是得到以下內容:A1到B1,A2到B1,A3到B1,A4到B1等。

Sub StartLoop() 
Application.Goto Reference:="StartLoop" 
Do Until AciveCell = "" 
    ActiveCell.Offset(1, 0).Range("A1").Select 'range "A2:A2000" contains the data to test 
Loop 
End Sub 
Sub copyLoop() 'copy from columnn A and past to a fix destination 
Application.Goto Reference:="StartLoop" 
    Do Until ActiveCell = "" 
     Selection.Copy 
     ActiveCell.Offset(0, 1).Range("A1").Select 
     ActiveSheet.Paste 
     ActiveCell.Offset(1, -1).Range("A1").Select 
Loop 
    Application.CutCopyMode = xlCopy 
End Sub> 
+1

從描述中不清楚你想要達到的目標。發佈一個或多個屏幕截圖可能會有所幫助,同時還有一些示例代碼會顯示您已經嘗試過的內容,即代碼的運行方式不符合您的要求。 (stackoverflow的[代碼格式](http://stackoverflow.com/editing-help)真的很不錯,開發人員喜歡看_code_。) – evadeflow

+0

你只是想將列轉移到一行嗎?複製整個數據並pasteSpecial轉置它。使用宏記錄器來了解如何完成這項工作。 –

+0

嗨大衛,的確我做到了,但我的宏開始的方式不會從我在宏錄製器中學到的東西上工作。我試圖做的是自動複製過去的過程,其中a1到b1,a2到b1,a3到b1。 b1鏈接到數據提供者,它更新宏的第二部分將導出的一些信息。 – user3809857

回答

0

從我所看到的,你只是試圖通過一列值循環,並將每一個依次粘貼到同一個單元格中。下面的代碼將是實現這一目標的一種方式。

Sub LoopTheStuff() 
Dim columnA As Range 
Dim target As Range 

Set columnA = Range("A1:A" & ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row) 'selects range of A1 to the last cell with value 
Set target = Range("B1") 
For Each c In columnA 
    target = c 'B1 = Ax 
Next c 

End Sub