将数据从多个标签复制到不同的文件

时间:2015-08-20 10:07:16

标签: excel vba excel-vba

美好的一天,

我现在正在使用2个excel文件:

1)计算每天销售代理商31天的主文件,每个代理商在不同的工作表上,范围从工作表#1-100和一个名为TOTAL的工作表,显示所有工作表和一些工作表的总数其他与此问题无关的计算。

2)一张发票文件,其中有一张表格,我从文件#1复制该特定代理商的数据,这是发票的主要部分。还有其他表格,但它们都依赖于发票表,因此它们不应该真正相关。

发票的构建方式是我将名称,网站和数量从#1复制到发票,而不是检查我复制的所有内容是否正确,如果是我打印发票并使用宏将其保存在发票编号(比如xxx)下,而不是删除我刚刚复制的数据,并在发票编号上加+1(新发票编号将是xxx + 1)

我手动需要复制和粘贴并检查所有内容,通常有大约100张发票。我的问题是,有没有办法让这个过程自动化? 在激活转到文件#1-sheet#1的VBA代码时,将相关数据复制到发票中,将其打印出来然后使用我用来保存的相同宏来使发票号码增加1而不是提交#1-sheet#2等

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是将范围从一个工作簿复制到另一个工作簿的代码的基本示例:

Sub CopyRange()

    Dim strPath As String  'Path to invoice file
    Dim wbk1 As Workbook   'Used for file#1
    Dim wbk2 As Workbook   'Used for file#2
    Dim agent_num As Integer  'Can store the number

    strPath = "C:\wherever your invoice file is"

    Set wbk1 = ThisWorkbook
    Set wbk2 = Workbooks.Open(strPath)

    While (agent_num <= wbk1.Sheets.Count())  
        'copy a range - repeat as necessary
        wbk2.Worksheets("Name of invoice sheet").Range("Where you are copying to").Value = wbk1.Worksheets(agent_num).Range("Where you are copying from").Value
        'Save that invoice file how you want it
        'Then increase the invoice number by 1
        'Set those cells back to ""
        wbk2.Worksheets("Name of invoice sheet").Range("Where you are copying to").Value = ""
        agent_num++  'next sheet
    Loop

    wbk2.Close()

End Sub

您需要为您的目的编辑一些内容,但我认为它应该有用。对不起,如果我犯了任何错误,我一直无法测试