以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教老师,这段代码该怎么精简?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140064)

--  作者:etchun
--  发布时间:2019/8/28 19:29:00
--  [求助]请教老师,这段代码该怎么精简?

请教老师,这段代码该怎么精简?
鉴于尽管可以跳过某些正常excel表生成报表,但发现生成的报表中,其他excel表的数据链接全都失效,即使特意在模版中加插一列,
让生成后的报表,被链接数据的单元格位置保持一致,还是不行。
所以想通过以下代码另类集成,但要是十几张表这么运行,感觉会很吃内存,该怎么精简?
或者说,最主要的是下面所示的C表,把C表数据在直接复制粘贴到总工作簿中对应的sheet就可以了...总工作簿的其他十多张表都是通过C表进行数据链接以及计算的。
我现在是生成C表后,手动复制粘贴。。

Dim Book1 As New XLS.Book("c:\\LS1.xls")
Book1.Build() \'生成细节区
Book1.Save("c:\\reports\\LS1.xls") \'保存临时工作簿1
Dim Book2 As New XLS.Book("c:\\LS2.xls")
Book2.Build() \'生成细节区
Book2.Save("c:\\reports\\LS2.xls") \'保存临时工作簿2
Dim Book3 As New XLS.Book("c:\\LS3.xls")
Book3.Build() \'生成细节区
Book3.Save("c:\\reports\\LS3.xls") \'保存临时工作簿3
Dim A1 = Book1.Sheets("A表")
Dim B2 = Book2.Sheets("B表")
Dim C3 = Book3.Sheets("C表")
Dim Book4 As New XLS.Book("c:\\总表.xls") \'定义总工作簿
Book1.Sheets.Remove(A1)
Book4.Sheets.Insert(0,A1)
Book2.Sheets.Remove(B2)
Book4.Sheets.Insert(3,B2)
Book3.Sheets.Remove(C3)
Book4.Sheets.Insert(5,C3) \'把各个临时工作簿生成的报表插入至总工作簿指定位置
Book4.Save("c:\\reports\\总表.xls") \'保存 
FileSys.DeleteFile("c:\\reports\\LS1.xls",2,2) 
FileSys.DeleteFile("c:\\reports\\LS2.xls",2,2) 
FileSys.DeleteFile("c:\\reports\\LS3.xls",2,2) \'删除所有临时工作簿
Dim Proc As New Process
Proc.File = "c:\\reports\\总表.xls"
Proc.Start() \'打开总工作簿

--  作者:etchun
--  发布时间:2019/8/28 20:39:00
--  
各位老师???图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2019/8/29 9:25:00
--  
Dim Book1 As New XLS.Book("c:\\LS1.xls")
Book1.Build() \'生成细节区
Dim Book2 As New XLS.Book("c:\\LS2.xls")
Book2.Build() \'生成细节区
Dim Book3 As New XLS.Book("c:\\LS3.xls")
Book3.Build() \'生成细节区
Dim A1 = Book1.Sheets("A表")
Dim B2 = Book2.Sheets("B表")
Dim C3 = Book3.Sheets("C表")
Dim Book4 As New XLS.Book("c:\\总表.xls") \'定义总工作簿
Book1.Sheets.Remove(A1)
Book4.Sheets.Insert(0,A1)
Book2.Sheets.Remove(B2)
Book4.Sheets.Insert(3,B2)
Book3.Sheets.Remove(C3)
Book4.Sheets.Insert(5,C3) \'把各个临时工作簿生成的报表插入至总工作簿指定位置
Book4.Save("c:\\reports\\总表.xls") \'保存 
Dim Proc As New Process
Proc.File = "c:\\reports\\总表.xls"
Proc.Start() \'打开总工作簿

--  作者:etchun
--  发布时间:2019/8/29 21:49:00
--  回复:(有点蓝)Dim Book1 As New XLS.Book("c:\LS1....
谢谢蓝老师