Foxtable(狐表)用户栏目专家坐堂 → 合并EXCELpiao据


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

主题:合并EXCELpiao据

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 9:10:00 [显示全部帖子]

 生成报表之后,用vba把sheet2的内容拷贝过来即可。

 

 先看下vba的知识点 http://www.foxtable.com/help/topics/2121.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 9:42:00 [显示全部帖子]

以下是引用发财在2014-5-12 9:16:00的发言:
sheet1只显示重量,没有标题,与sheet2的标题不符,我的意思是想先打印完sheet1的重量,如200,210,250,195,188,221。。。。。。,在sheet1下面打印sheet2,只合并打印,其表不能合并。

 

完完全全不理解你的意思。

 

你上传一个可以测试的例子,同时做出你要的效果图。

 

或者看5楼,把表数据拷贝过去即可。

[此贴子已经被作者于2014-5-12 9:43:00编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 11:26:00 [显示全部帖子]

以下是引用发财在2014-5-12 11:17:00的发言:
这样编写代码不行?

 

提示什么错误?代码是没有错的

 

Wb.Save 后面还要加一句 App.Quit


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 11:27:00 [显示全部帖子]

 如果提示什么只读之类的错误......就调出 任务管理器 把 excel.exe 先杀掉。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 15:07:00 [显示全部帖子]

 你之前写的代码,是复制表,不是合并表......

 

 你把生成的excel文件传上来,我帮你写代码。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 15:25:00 [显示全部帖子]

 我对vba也不太熟悉,代码大概这样写。意思是把sheet2的全部拷贝到sheet1的后面去

 

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("e:\test.xls")  
    Dim Ws1 As MSExcel.WorkSheet = Wb.WorkSheets("sheet1")
    Dim Ws2 As MSExcel.WorkSheet = Wb.WorkSheets("sheet2") '指定要复制的工作表
    Dim Rg As MSExcel.Range = Ws2.UsedRange

    Rg.copy(ws1.cells(ws1.UsedRange.Rows.count+10, 1))

    Wb.Save
catch ex As exception
    msgbox(ex.message)  
finally
    App.Quit
End try


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 15:27:00 [显示全部帖子]

 回复15楼,你把这两个模板发上来有什么用?

 

 请看14楼的代码,自己改一下使用。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 15:38:00 [显示全部帖子]

 回复17楼,你生成后的报表,是一个xls文件有两张,还是两个xls文件?

 

 请详细说明,自己看14楼代码....


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/12 17:25:00 [显示全部帖子]

代码这样改。注意点,你的 收购单 要有两个表格,红色代码改成你对应的 表名

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\收购单.xls")
Book.Marks.Add("用户名",User.Name)
Dim fl As String = ProjectPath & "Reports\收购单.xls"
Book.Build()
Book.Save(fl)

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 Rg As MSExcel.Range = Ws2.UsedRange
    Rg.copy(ws1.cells(ws1.UsedRange.Rows.count+1, 1))
    Wb.Save

    App.Visible = True
    addhandler Wb.BeforePrint, addressof Workbook_BeforePrint
    Ws1.PrintPreview()
catch ex As exception
    msgbox("出错信息:" & ex.message)
finally
    App.Quit
End try

[此贴子已经被作者于2014-5-12 17:27:25编辑过]

 回到顶部