2014-07-06 53 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