Foxtable(狐表)用户栏目专家坐堂 → [求助]请教老师,这段代码该怎么精简?


  共有3686人关注过本帖树形打印复制链接

主题:[求助]请教老师,这段代码该怎么精简?

帅哥哟,离线,有人找我吗?
etchun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:34 积分:287 威望:0 精华:0 注册:2019/8/18 22:38:00
[求助]请教老师,这段代码该怎么精简?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:34 积分:287 威望:0 精华:0 注册:2019/8/18 22:38:00
  发帖心情 Post By:2019/8/28 20:39:00 [只看该作者]

各位老师???图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:34 积分:287 威望:0 精华:0 注册:2019/8/18 22:38:00
回复:(有点蓝)Dim Book1 As New XLS.Book("c:\LS1....  发帖心情 Post By:2019/8/29 21:49:00 [只看该作者]

谢谢蓝老师

 回到顶部