以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】怎么让Excel报表模板里面的程序运行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64666)

--  作者:wang1988sen
--  发布时间:2015/2/26 17:38:00
--  【求助】怎么让Excel报表模板里面的程序运行
      用Excel报表模板输出功能导出报表需要一些小功能,就有Excel的vba对模板进行了编程,在模板里面添加了一个按钮。类似于宏程序,点击后弹出一个窗口让用户使用,功能已经实现了,图片点击可在新窗口打开查看
     问题就在于当用Excel模板导出数据时候才发现图片点击可在新窗口打开查看,这个模板的按钮不显示,就无法运行这个程序,我又将Excel模板的窗口设置为Excel启动自动运行弹出窗
口,单独打开模板时候一切正常,可是用模板导出是好还是不能弹出窗口,所以希望版主给我一些帮助,怎么让这个程序通过Excel报表模板导出后模板的程序能够运行,不然后这几天的功夫就白费了。图片点击可在新窗口打开查看

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

怎么让这个模板vba写的程序用报表功能导出后还能使用呢?

[此贴子已经被作者于2015/2/26 17:47:47编辑过]

--  作者:有点甜
--  发布时间:2015/2/26 18:11:00
--  

 测试了一下,这样解决。

 

1、在模板上加入一个宏,比如代码如下

 

Sub test()
    UserForm1.Show
End Sub

2、用代码生成报表,但不要显示出来 http://www.foxtable.com/help/topics/1145.htm

 

3、用下面的代码设置按钮进去、以及运行对应的宏

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\test_test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
App.Visible = True

 

Ws.Buttons.Add(183.75, 141, 54, 18.75).Select
app.Run("test")


--  作者:wang1988sen
--  发布时间:2015/2/26 19:15:00
--  
三个步骤都需要做吗?不知道放到那个事件下,自己尝试了一下没成功。
第一个步骤放在模块里面,之前也在open的事件加过打开窗口的代码
第二个链接我也是用的那段代码,就是用一个按钮来生成模板,生成指数数据,那个按钮不出来。
低三个不知道放那个事件下,还是放在第二个方法的代码里面,里面的("D:\\test_test.xls")这个路径的文件是怎么来的呢?
疑问比较多啊
[此贴子已经被作者于2015/2/26 19:19:41编辑过]

--  作者:有点甜
--  发布时间:2015/2/26 19:20:00
--  

 不可能不成功

 

1、代码写到宏的某个模块里面;

 

2、用代码先生成报表;

 

3、用代码打开生成的报表,加入按钮,运行窗口


--  作者:wang1988sen
--  发布时间:2015/2/26 19:24:00
--  
前两个步骤做了,低三个步骤不明白。
--  作者:有点甜
--  发布时间:2015/2/26 19:25:00
--  

把红色代码替换成自己的xls就行啊

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\test_test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
App.Visible = True

 

Ws.Buttons.Add(183.75, 141, 54, 18.75)
app.Run("test")

[此贴子已经被作者于2015/2/26 19:24:57编辑过]

--  作者:有点甜
--  发布时间:2015/2/26 19:48:00
--  

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("C:\\Documents and Settings\\Administrator\\My Documents\\下载\\模板\\模板\\成绩报表模板.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
App.Visible = True

ws.Buttons.Add(18.75, 28.5, 102.75, 39).Select
app.ActiveWindow.Selection.
app.ActiveWindow.Selection.Characters.Text = "导出成绩"
app.Run("test")


--  作者:wang1988sen
--  发布时间:2015/2/26 19:55:00
--  
这段代码是放在生成报表的按钮里面吗?第一的代码成功了,可是不会生成细节区, 刚给的代码提示出错了


--  作者:wang1988sen
--  发布时间:2015/2/26 19:56:00
--  
每次都要生成一个按钮有什么用呢?
--  作者:wang1988sen
--  发布时间:2015/2/26 19:59:00
--  
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("C:\\成绩报表模板.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
App.Visible = True
ws.Buttons.Add(18.75, 28.5, 102.75, 39).Select【这句有什么用】
app.ActiveWindow.Selection【这段提示出错】
app.ActiveWindow.Selection.Characters.Text = "导出成绩"
app.Run("test")