遍历列并将每个值复制/粘贴到另一个工作簿

时间:2019-05-15 21:42:07

标签: excel vba

我必须为在excel中工作的宏创建一个宏,并且迷路了,并且想知道yall是否可以提供帮助。

所以我有两个工作簿。第一个工作簿(TEST)具有我需要打印的表格,第二个工作簿(硬币测试)具有原始数据。我在表单工作簿中有一个单元格,如果我从原始数据工作簿中粘贴项目编号,它将通过公式自动从原始数据表中提取所有项目信息,并填写表格(项目编号,项目规格,商品价格等)。

所以我需要做的是自动转到原始数据表,从C1复制第一个项目号,然后转到表单工作簿,然后将该项目号粘贴到单元格J2中,在此它会自动填写表单然后打印该表格,然后返回到原始数据工作簿,然后转到下一个项目编号,然后冲洗并重复。我试图将代码拼凑在一起,到目前为止,这是我的怪物。谢谢大家的帮助

Sub Macro4()

'Macro4 Macro

  Sheets("TESTING").Select
  Selection.Copy

  Sheets("COIN TESTING").Select
  ActiveSheet.Paste

  For Each Cell In Range("C$:C$")

    If Cell.Value = vbNullString Then Exit For

    Range("C$:C$").Value = Cell.Value
    Cell.Offset(1, 0).Value = Range("J2").Value

  Next

End Sub

1 个答案:

答案 0 :(得分:0)

未经测试:

Sub Macro4()

    Dim c As Range, rng As Range

    'get the range to loop over
    with Sheets("COIN TESTING")
        Set rng = .Range("C1:C" & .cells(.rows.count,3).end(xlUp).Row)
    end with

    'process each cell in turn
    For each c in rng.cells

        'is there a value to transfer?
        If Len(c.value) > 0 then
            'directly assign the value - no need for copy/paste
            Sheets("TESTING").Range("J2").Value = c.value

            'calculate and print out sheet
            Sheets("TESTING").UsedRange.Calculate 'refresh formulas
            Sheets("TESTING").PrintOut

        End if

    Next c

End Sub