在信息列表上使用宏。每行信息都需要新工作表

时间:2017-11-13 15:00:22

标签: vba excel-2007

我是所有这些宏观事物的新手并且之前没有使用过,所以可以提供一些帮助。

我已经设置了一个宏来从模板和信息列表创建一个新的报价。我有一张名为Summery的表,其中包含客户信息等,所有这些信息都需要添加到报价模板中。我创建了一个基本的宏,它完成了这项工作,但我现在需要它为列出的每个客户做同样的事情。目前它只在第一行运行。 请有人协助我使用哪些代码来运行整个客户列表?

Sub Macro2()
'
' Macro2 Macro
' Create New Quote for each customer
'
' Keyboard Shortcut: Ctrl+q

    Sheets("Master").Select
    Sheets("Master").Copy After:=Sheets(2)
    Range("A13").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-9]C[1]"
    Range("A15").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-11]C[2]"
    Range("E13").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-9]C[-1]"
    Range("E15").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-11]C"
    Range("B19").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-15]C[5]"
    Range("B20").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-16]C[6]"
    Range("B21").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-17]C[7]"
    Range("B22").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-18]C[8]"
    Range("B23").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-19]C[9]"
    Range("B24").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-20]C[10]"
    Range("B25").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-21]C[11]"
    Range("B26").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-22]C[12]"
    Range("B27").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-23]C[13]"
    Range("B28").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-24]C[14]"
    Range("B30").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-26]C[15]"
    Range("B31").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-27]C[16]"
    Range("B32").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-28]C[17]"
    Range("B33").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-29]C[18]"
    Range("B34").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-30]C[19]"
    Range("B35").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-31]C[20]"
    Range("B36").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-32]C[21]"
    Range("B37").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-33]C[22]"
    Range("B38").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-34]C[23]"
    Range("B39").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-35]C[24]"
    Range("A40:D40").Select
    ActiveWindow.SmallScroll Down:=9
    Range("B41").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-37]C[25]"
    Range("B42").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-38]C[26]"
    Range("B43").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-39]C[27]"
    Range("B45").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-41]C[28]"
    Range("B47").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-43]C[29]"
    Range("B48").Select
    ActiveWindow.SmallScroll Down:=-9
    Range("C19").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-15]C[30]"
    Range("C20").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-16]C[31]"
    Range("C21").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-17]C[32]"
    Range("C22").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-18]C[33]"
    Range("C23").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-19]C[34]"
    Range("C24").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-20]C[35]"
    Range("C25").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-21]C[36]"
    Range("C26").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-22]C[37]"
    Range("C27").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-23]C[38]"
    Range("C28").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-24]C[39]"
    Range("C30").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-26]C[40]"
    Range("C31").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-27]C[41]"
    Range("C32").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-28]C[42]"
    Range("C33").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-29]C[43]"
    Range("C34").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-30]C[44]"
    Range("C35").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-31]C[45]"
    Range("C36").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-32]C[46]"
    Range("C37").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-33]C[47]"
    Range("C38").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-34]C[48]"
    Range("C39").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-35]C[49]"
    Range("A40:D40").Select
    ActiveWindow.SmallScroll Down:=15
    Range("C41").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-37]C[50]"
    Range("C42").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-38]C[51]"
    Range("C43").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-39]C[52]"
    Range("C45").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-41]C[53]"
    Range("C47").Select
    ActiveCell.FormulaR1C1 = "=Summery!R[-43]C[54]"
    Range("C48").Select
    ActiveSheet.Name = Range("A13").Value


End Sub

由于

1 个答案:

答案 0 :(得分:0)

你的要求非常不明确,我们甚至不知道你的总结是什么。表格看起来像(也许是一个错字)。所以我正在编写这段代码,让您了解如何实现这一目标。只需更改对“夏日”的引用即可。根据您的要求设置表格或使其动态化。

Sub do_random()
last_row = ThisWorkbook.Worksheets("Summery").Cells(1, 1).End(xlDown).Row

For i = 1 To last_row

   Sheets("Master").Select
   Sheets("Master").Copy After:=Sheets(2)
   Range("A13").Select
   ActiveCell.FormulaR1C1 = "=Summery!R[-9]C[1]"
   Range("A15").Select
   ActiveCell.FormulaR1C1 = "=Summery!R[-11]C[2]"
   Range("E13").Select
   ActiveCell.FormulaR1C1 = "=Summery!R[-9]C[-1]"
   ....
   'Do what ever you want in here.

Next i
End Sub