Foxtable(狐表)用户栏目专家坐堂 → [求助]选择Reports文件夹里面的多个excle报表合并


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

主题:[求助]选择Reports文件夹里面的多个excle报表合并

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]选择Reports文件夹里面的多个excle报表合并  发帖心情 Post By:2018/4/18 7:27:00 [只看该作者]

如题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:reports.rar

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
  发帖心情 Post By:2018/4/18 11:25:00 [只看该作者]

上面代码报错:

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

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 11:31:00 [只看该作者]

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

 

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)首先,做一个总的模板文件,把三个模...  发帖心情 Post By:2018/4/18 11:51:00 [只看该作者]

总模板放在哪里?

sheet命名在哪里?

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 11:54:00 [只看该作者]

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

 

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)1、总模板和你平时的模板一样,只是有...  发帖心情 Post By:2018/4/18 13:54:00 [只看该作者]

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

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

D:\test.xls

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 14:30:00 [只看该作者]

这么简单也不会?

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)这么简单也不会? 做一个ex...  发帖心情 Post By:2018/4/18 16:57:00 [只看该作者]

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

 

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 17:55:00 [只看该作者]

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

 

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


 回到顶部