以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如果在一页生成的报表中含两个表的明细  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185317)

--  作者:zhangchi96
--  发布时间:2023/2/16 14:18:00
--  如果在一页生成的报表中含两个表的明细
请教高手,我想生成报表,报表分两部分,第一部分为表1,第二部分为表2,把表1的内容生成后接着生成表二,这个怎么写?有没有参考的代码?


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2023/2/16 14:28:00
--  
方法1、手工生成:http://www.foxtable.com/webhelp/topics/1148.htm
2、使用2个模板生成报表后合并到一起:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=97286&replyID=670470&skin=1

--  作者:zhangchi96
--  发布时间:2023/2/16 14:37:00
--  
方法2,可不可以理解为,用两个数据表,分别得到两个excel报表,然后把这两个表合并得到一个新表?


--  作者:有点蓝
--  发布时间:2023/2/16 14:38:00
--  
是的
--  作者:zhangchi96
--  发布时间:2023/2/16 18:21:00
--  
代码很好用,自己做个说明:把电子表中,第一个表后面的表都复制到第1表的后面

Dim App As New MSExcel.Application

Dim Wb As MSExcel.Workbook = App.WorkBooks.open("f:\\test.xls")

Dim ws As MSExcel.WorkSheet

ws = Wb.WorkSheets(1)

Dim rg As MSExcel.Range  = ws.Cells(ws .UsedRange.Rows.Count+1,1)

app.DisplayAlerts = False

For i As Integer = Wb.WorkSheets.Count To 2 Step -1

    Dim Ws2 As MSExcel.WorkSheet = Wb.WorkSheets(i)

    Dim Rg2 As MSExcel.Range = Ws2.UsedRange

    rg2.Copy

    rg.PasteSpecial()

    rg = ws.Cells(ws .UsedRange.Rows.Count+1,1)

    Ws2.Delete

Next

Wb.Save

App.Quit


这之间还遇到一个新问题,请教一下,下图是我的第2个工作表的模版,其中序号列,为了重新编号,我直接写了一个函数在里面,但复制到1表后,行数变了,结果就不对了。


我想在复制前,把函数值复制成数值,请问要加个什么语句 ?


此主题相关图片如下:12.png
按此在新窗口浏览图片



--  作者:有点蓝
--  发布时间:2023/2/16 20:08:00
--  
这样用:http://www.foxtable.com/webhelp/topics/1405.htm
--  作者:zhangchi96
--  发布时间:2023/2/16 21:48:00
--  
领教了,想不到狐爸爸早就有预见,设置好了这个技能,谢谢蓝老师悉心指导!!!