以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]选择Reports文件夹里面的多个excle报表合并  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117707)

--  作者:湛江智
--  发布时间:2018/4/18 7:27:00
--  [求助]选择Reports文件夹里面的多个excle报表合并
如题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:reports.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:选择reports文件夹里面的多个excle报表合并.rar


--  作者:有点甜
--  发布时间:2018/4/18 9:19:00
--  

如果是一个xlsx一个sheet的话,你可以做一个总的模板文件,把三个模板分别放在三个sheet里面即可。

 

如果是把三个xlsx放到一个sheet里面,参考

 

sheet1、sheet2拷贝到sheet3中去

 

Dim App As New MSExcel.Application

Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\test.xls")
Dim Ws1 As MSExcel.WorkSheet = Wb.WorkSheets("sheet1") \'指定要复制的工作表
Dim Ws2 As MSExcel.WorkSheet = Wb.WorkSheets("sheet2")
Dim Ws3 As MSExcel.WorkSheet = Wb.WorkSheets("sheet3")

Ws1.UsedRange.Copy
ws3.Cells(1,1).Select
ws3.paste
Ws2.UsedRange.Copy
\'ws3.Cells(1,Ws1.UsedRange.Columns.Count).Select \'横向拷贝
ws3.Cells(Ws1.UsedRange.Rows.Count,1).Select \'纵向拷贝
ws3.paste

\'Wb.Save
app.Visible = True
\'App.Quit


--  作者:湛江智
--  发布时间:2018/4/18 11:25:00
--  

上面代码报错:

找不到“D:\\test.xls”。请检查文件名的拼写,并验证文件位置是否正确。

如果您正试图从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。

 

版主能帮忙调整好,上传吗?


--  作者:有点甜
--  发布时间:2018/4/18 11:31:00
--  

首先,做一个总的模板文件,把三个模板分别放在三个sheet里面;

 

然后,生成得到报表文件 test.xlsx

 

最后,拷贝各个sheet的文件到一个sheet里面去(参考2楼代码)


--  作者:湛江智
--  发布时间:2018/4/18 11:51:00
--  回复:(有点甜)首先,做一个总的模板文件,把三个模...

总模板放在哪里?

sheet命名在哪里?

3个单独的报表的按钮,和上面代码怎么结合使用?

 


--  作者:有点甜
--  发布时间:2018/4/18 11:54:00
--  

1、总模板和你平时的模板一样,只是有3个sheet(你平时的基本是1个sheet)

 

2、拷贝你原来的模板,到总模板里面去

 

3、根据总模板生成excel报表即可,代码和你单独的报表的代码一模一样


--  作者:湛江智
--  发布时间:2018/4/18 13:54:00
--  回复:(有点甜)1、总模板和你平时的模板一样,只是有...

还是不行,以前有这个帖子可以参考吗?

上面代码是在狐表里用?还是在excle软件里用?

D:\\test.xls

test.xls 是收到建的有3个sheet的模板吗?还是上面代码自动合并Attachments,或Reports 文件夹里面的3个只有一个sheet的xls后生成的工作簿?

[此贴子已经被作者于2018/4/18 14:18:49编辑过]

--  作者:有点甜
--  发布时间:2018/4/18 14:30:00
--  

这么简单也不会?

 

做一个excel模板,添加3个sheet,然后拷贝你原本的模板到各个sheet里面去。


--  作者:湛江智
--  发布时间:2018/4/18 16:57:00
--  回复:(有点甜)这么简单也不会? 做一个ex...

Dim Book1 As New XLS.Book(ProjectPath & "Attachments\\test.xls")
Dim fl As String = ProjectPath & "Reports\\test.xls"

 

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws1 As MSExcel.WorkSheet = Wb.WorkSheets("Sheet1") \'指定要复制的工作表
    Dim Ws2 As MSExcel.WorkSheet = Wb.WorkSheets("Sheet2")
    Dim Ws3 As MSExcel.WorkSheet = Wb.WorkSheets("Sheet3")
    Ws1.UsedRange.Copy
    ws3.activate
    ws3.Cells(1,1).Select
    ws3.paste
    Ws2.UsedRange.Copy
    ws3.activate
    ws3.Cells(1,Ws1.UsedRange.Columns.Count+2).Select \'横向拷贝
    \'ws3.Cells(Ws1.UsedRange.Rows.Count,1).Select \'纵向拷贝
    ws3.paste
    Wb.Save
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    App.Quit
End try

 

 

帮忙解释一下,上面代码怎么用了?

 


--  作者:有点甜
--  发布时间:2018/4/18 17:55:00
--  

1、先不要写代码,这一步你做了没有?【做一个excel模板,添加3个sheet,然后拷贝你原本的模板到各个sheet里面去】,然后生成excel报表。

 

2、在做第一步的基础上,再谈代码怎么写。