-2

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

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

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

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

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

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

4

1 回答 1

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)

试试看它是否适合你。

于 2013-09-14T13:58:32.823 回答