vba循环复制并粘贴到特定单元格

时间:2014-07-06 16:14:52

标签: excel vba excel-vba

我是VBA的新手。这个想法是循环应该在A列的过程中将每个单元格调出一次到单元格“B1”。

它现在做了什么,它将数据复制到右侧的列中,但我希望它能够达到顶部。

代码现在这样做。
它将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 个答案:

答案 0 :(得分: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