跳到主要内容

执行宏

命令说明

执行Excel中的宏

命令原型

objRet = Excel.ExecuteMacro(objExcelWorkBook,macro,listArgs)

命令参数

参数必选类型默认值说明
objExcelWorkBookTrueexpressionobjExcelWorkBook使用 "打开Excel工作簿"命令(Excel.OpenExcel) 或 "绑定Excel工作簿" 命令(Excel.BindBook)返回的工作簿对象
macroTruestring""Excel中的宏定义,可以是sub、function
listArgsTrueexpression[]需要传给宏定义的属性,如调用subSum(1,2),则传递[1,2]

返回结果

objRet,将命令运行后的结果赋值给此变量。

运行实例

/*********************************执行宏***************************************
命令原型:
objRet = Excel.ExecuteMacro(objExcelWorkBook,"",[])
入参:
objExcelWorkBook--Excel工作簿对象(使用 "打开Excel"命令(Excel.OpenExcel) 打开的工作簿或使用"绑定Excel"命令(Excel.BindBook)绑定的工作簿对象)。
macro--Excel中的宏定义,可以是sub、function。
listArgs--需要传给宏定义的参数,如调用subSum(1,2),则传递[1,2]。
出参:
objRet--函数调用的输出保存到的变量。
注意事项:
该命令不能单独使用,需配合 "打开Excel"命令(Excel.OpenExcel) 或"绑定Excel"命令(Excel.BindBook)一起使用才能正常使用,单独使用则会报错。
宏代码如下所示:
Sub test()
'
' test 宏
'
'
Range("A1:A11").Select
Range("A11").Activate
ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
Range("A1:A11").Select
End Sub

**********************************************************************************/
Dim objExcelWorkBook = ""
objExcelWorkBook = Excel.OpenExcel(@res"测试.xlsm",True,"Excel","","")
objRet = Excel.ExecuteMacro(objExcelWorkBook,"test",[])
TracePrint "执行宏:Excel对象'Sheet1'工作表运行宏计算了A1所在列的和"
Excel.CloseExcel(objExcelWorkBook,True)

可视化样例