Foxtable(狐表)用户栏目专家坐堂 → [求助]狐表中运行Excel表中宏的代码应怎样写?


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

主题:[求助]狐表中运行Excel表中宏的代码应怎样写?

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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
[求助]狐表中运行Excel表中宏的代码应怎样写?  发帖心情 Post By:2013/10/13 20:25:00 [只看该作者]

想在合并Excel表之前,在表中先运行录制好的宏代码,并保存该工作簿.这代码应怎样写?
Dim dlg As New OpenFileDialog
dlg.InitialDirectory = "E:\"
dlg.Filter = "Excel文件|*.xls"
dlg.MultiSelect = True '允许选择多个文件
If dlg.ShowDialog =DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        Dim App As New MSExcel.Application
        Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(""& fl & "") '第一个Excel文件
        Dim Wd As MSExcel.Window = Wb.Windows(1)    '表示当前工作簿窗口
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) '第一个工作表
        App.Visible = True
       '运行宏"Macro1"    这段代码应怎么写?
       '保存文件
    Next
End If

用"Sub Macro1() "根本不行.
[此贴子已经被作者于2013-10-13 20:48:41编辑过]

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


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


Dim oRunArgs(2) As object '宏参数,第一个是宏名称
oRunArgs(0) = "宏的名称" '必填,后面两个参数可以不填
oRunArgs(1) = 第一个参数 '可以是任意类型
oRunArgs(2) = 第二个参数 

'执行宏
Dim result = app.Gettype().InvokeMember("Run", System.Reflection.BindingFlags.Default Or System.Reflection.BindingFlags.InvokeMethod, Nothing, App, oRunArgs)
[此贴子已经被作者于2013-10-13 21:21:02编辑过]

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


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


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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2013/10/13 21:15:00 [只看该作者]

代码一点都看不懂,
先谢谢有点甜老师.
再慢慢参悟.

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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/10/13 21:19:00 [只看该作者]

 

App.run("Macro1")

 

 

 

 

 

 

来源于Application.run(函数名,参数1,····,参数30) as object

 


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


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

 回复5楼,呵呵,原来这么简单……详细看了下代码,用反射似乎多此一举了。

 2楼代码写错了,现已改正,但不推荐。
[此贴子已经被作者于2013-10-13 21:23:19编辑过]

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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2013/10/13 22:03:00 [只看该作者]

 加入以下代码:

App.run("Macro1")

提示,找不到宏"Macro1",这是为何?我明明录制了宏保存在个人宏工作簿.

 


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


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

  我测试了一下,可以正常。我的Macro是写在模块上的。

 回到顶部