以文本方式查看主题 - 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=41196) |
|
-- 作者:hzcaqjf -- 发布时间:2013/10/13 20:25:00 -- [求助]狐表中运行Excel表中宏的代码应怎样写? 想在合并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编辑过]
|
|
-- 作者:有点甜 -- 发布时间: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编辑过]
|
|
-- 作者:有点甜 -- 发布时间:2013/10/13 20:57:00 -- 参考资料 |
|
-- 作者:hzcaqjf -- 发布时间:2013/10/13 21:15:00 -- 代码一点都看不懂, 先谢谢有点甜老师.
再慢慢参悟. |
|
-- 作者:逛逛 -- 发布时间:2013/10/13 21:19:00 --
App.run("Macro1")
来源于Application.run(函数名,参数1,····,参数30) as object
|
|
-- 作者:有点甜 -- 发布时间:2013/10/13 21:22:00 -- 回复5楼,呵呵,原来这么简单……详细看了下代码,用反射似乎多此一举了。 2楼代码写错了,现已改正,但不推荐。
[此贴子已经被作者于2013-10-13 21:23:19编辑过]
|
|
-- 作者:hzcaqjf -- 发布时间:2013/10/13 22:03:00 --
|
|
-- 作者:有点甜 -- 发布时间:2013/10/13 22:14:00 -- 我测试了一下,可以正常。我的Macro是写在模块上的。 |