以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]excel报表 引用问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16893)

--  作者:54kang
--  发布时间:2012/2/27 8:55:00
--  [求助]excel报表 引用问题

我用foxtable excel报表功能 模板A.xls 生成报表 A2.xls

另外预先创建excel文件B.xls。其中B.xls一个单元格用公式直接引用A2.xls的一个单元格。

希望每次重新生成报表A2.xls后,打开B.xls后,数据自动更新。

 

问题是,每次重新生成报表A2.xls后,打开B.xls后,提示数据源丢失,无法更新。如果手动打开A2.xls然后手动保存,B.xls就能找到数据源,并且自动更新了。

 

请问,有没有解决办法?比如,模拟手动打开保存xls.   或者其他。给个思路也行。

 我用的是office 2003.  (office 2010试过了,也不行)


--  作者:54kang
--  发布时间:2012/2/27 9:06:00
--  

Dim Book As New XLS.Book(ProjectPath & "Attachments\\A.xls")

Dim fl As String = ProjectPath & "Reports\\A2.xls"

Book1.Build() \'生成细节区
Book1.Save(fl) \'保存工作簿

Dim Proc As New Process \'打开工作簿
Proc.File = ProjectPath & "B.xls"
Proc.Start()


--  作者:54kang
--  发布时间:2012/2/27 16:15:00
--  

大家帮忙啊


--  作者:狐狸爸爸
--  发布时间:2012/2/27 16:21:00
--  

我也不会,帮你顶。

只是你搞得这么复杂干什么? 何不直接用代码向B.xls写入这个值?


--  作者:54kang
--  发布时间:2012/2/27 16:45:00
--  

哦。是个思路。我考虑考虑

 


--  作者:54kang
--  发布时间:2012/2/27 16:50:00
--  

问题1.book.build()指令内部代码是什么?

问题2.book.save(fl)的结果和excel软件的保存功能还有什么区别?

问题3.*.xls的process 为什么没有verbs.save?

 


--  作者:54kang
--  发布时间:2012/2/27 16:54:00
--  

因为B.xls格式经常变动。我不想改模板,程序向里写数据就要改程序更麻烦。只有让用户自己引用程序生成的A2.xls。


--  作者:blackzhu
--  发布时间:2012/2/27 17:00:00
--  
以下是引用54kang在2012-2-27 16:50:00的发言:

问题1.book.build()指令内部代码是什么?

问题2.book.save(fl)的结果和excel软件的保存功能还有什么区别?

问题3.*.xls的process 为什么没有verbs.save?

 

看看帮助的EXCEL和VBA一章,看看对你有用吗?


--  作者:54kang
--  发布时间:2012/2/27 17:16:00
--  

感谢,正在研究,


--  作者:54kang
--  发布时间:2012/2/27 17:39:00
--  

用VBA搞定了,再次感谢blackzhu,

新的问题:

VBA中指令save时,去掉公式,保存为数据 可不可以?指令怎么写?