循环 - 将A2(Sheet1)复制到B2:B8(Sheet2),然后将A3(Sheet1)复制到B8:B13(Sheet2),直到A列到达空白单元格

时间:2013-09-14 10:39:02

标签: excel excel-vba vba

你好我是这个网站的新手并注册,希望有人能帮我解决excel问题中的这个vb。

我在marco / vb中不是很好,但不知何故可以阅读代码。我觉得使用vb是解决这个问题的唯一方法。

我在工作簿中有两张工作表,比如sheet1和sheet2。

我想将sheet1的A2的值(仅文本,无格式)复制到B2到B2的B7六次。

然后,将sheet1的A3复制到B8,再复制到sheet2的B13,然后再次复制,直到它到达A列sheet1中的空白单元格。

鉴于我对vba的知识有限,我无法提供样本代码,因为我认为这个网站需要。但是你提出的建议将在整个过程中帮助我;上面的场景是准确的,但不是具体细节。一旦我至少知道在哪里/如何开始,我可以调整我正在做的实际工作表。 你觉得它可能吗?希望有人可以提供帮助。在此先感谢!!!

1 个答案:

答案 0 :(得分:1)

我认为这会奏效。您需要适当更改范围参考。

Sub CopyVals()
    Dim copyRng As Range, cl As Range, rw As Integer

    Set copyRng = Worksheets("Sheet1").Range("A2:A4") //You should change this accordingly
    rw = 2

    With Worksheets("Sheet2")
        For Each cl In copyRng
            cl.Copy
            .Range("B" & rw & ":B" & rw + 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            rw = rw + 6
        Next cl
    End With
End Sub

根据OP评论进行更新

如果你想让代码工作到下一个空单元格,最简单的方法是更新代码,如下所示:

 Set copyRng = Worksheets("Sheet1").Range("A2:A" & Worksheets("Sheet1").Range("A2").End(xlDown).Row)

试一试,看看它是否适合你。