美好的一天,
我现在正在使用2个excel文件:
1)计算每天销售代理商31天的主文件,每个代理商在不同的工作表上,范围从工作表#1-100和一个名为TOTAL的工作表,显示所有工作表和一些工作表的总数其他与此问题无关的计算。
2)一张发票文件,其中有一张表格,我从文件#1复制该特定代理商的数据,这是发票的主要部分。还有其他表格,但它们都依赖于发票表,因此它们不应该真正相关。
发票的构建方式是我将名称,网站和数量从#1复制到发票,而不是检查我复制的所有内容是否正确,如果是我打印发票并使用宏将其保存在发票编号(比如xxx)下,而不是删除我刚刚复制的数据,并在发票编号上加+1(新发票编号将是xxx + 1)
我手动需要复制和粘贴并检查所有内容,通常有大约100张发票。我的问题是,有没有办法让这个过程自动化? 在激活转到文件#1-sheet#1的VBA代码时,将相关数据复制到发票中,将其打印出来然后使用我用来保存的相同宏来使发票号码增加1而不是提交#1-sheet#2等
谢谢!
答案 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
您需要为您的目的编辑一些内容,但我认为它应该有用。对不起,如果我犯了任何错误,我一直无法测试