执行宏
命令说明
执行Excel中的宏
命令原型
objRet = Excel.ExecuteMacro(objExcelWorkBook,macro,listArgs)
命令参数
参数 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
objExcelWorkBook | True | expression | objExcelWorkBook | 使用 "打开Excel工作簿"命令(Excel.OpenExcel) 或 "绑定Excel工作簿" 命令(Excel.BindBook)返回的工作簿对象 |
macro | True | string | "" | Excel中的宏定义,可以是sub、function |
listArgs | True | expression | [] | 需要传给宏定义的属性,如调用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)