执行宏
<p>[TOC]</p>
<h2>1.命令说明</h2>
<p>执行Excel中的宏</p>
<h2>2.命令原型</h2>
<pre><code>macroResult = Excel.ExecuteMacro(excelWorkBook, macro=&quot;test&quot;, listArgs=None, isSave=False)</code></pre>
<h2>3.命令参数</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">excelWorkBook</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">Book</td>
<td style="text-align: left;">无</td>
<td>使用 "打开Excel工作簿"命令(Excel.OpenExcel) 或 "绑定Excel工作簿" 命令(Excel.BindBook)返回的工作簿对象</td>
</tr>
<tr>
<td style="text-align: left;">macro</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">""</td>
<td>Excel中的宏定义名称,可以是sub、function(例如:宏是Sub test() ...,此参数应填写 "test")。默认 ""</td>
</tr>
<tr>
<td style="text-align: left;">listArgs</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td>需要传给宏定义的属性,如调用subSum(2, 3),则传递[2, 3],没有参数时填写None。默认None</td>
</tr>
<tr>
<td style="text-align: left;">isSave</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td>操作完成立即保存。默认False</td>
</tr>
</tbody>
</table>
<h2>4.返回结果</h2>
<p>宏的返回值</p>
<h2>5.运行实例</h2>
<pre><code>&quot;&quot;&quot;
/*******************执行宏*******************
入参:
excelWorkBook:[必选参数]使用 &quot;打开Excel工作簿&quot;命令(Excel.OpenExcel) 或 &quot;绑定Excel工作簿&quot; 命令(Excel.BindBook)返回的工作簿对象
macro:[可选参数]Excel中的宏定义名称,可以是sub、function(例如:宏是Sub test() ...,此参数应填写&quot;test&quot;)。默认&quot;&quot;
listArgs:[可选参数]需要传给宏定义的属性,如调用subSum(2, 3),则传递[2, 3],没有参数时填写None。默认None
isSave:[可选参数]操作完成立即保存。默认False
出参:
宏的返回值
注意事项:
该命令不能单独使用,需配合 &quot;打开Excel&quot;命令(Excel.OpenExcel) 或&quot;绑定Excel&quot;命令(Excel.BindBook)一起使用才能正常使用,单独使用则会报错。
**********************************************/
&quot;&quot;&quot;
# 打开D:\1.xlsx
excelWorkBook = Excel.OpenExcel(r'D:\1.xlsx', visible=True, appType=&quot;Excel&quot;, pwd=&quot;&quot;, writePwd=&quot;&quot;)
# 执行宏:Excel对象'Sheet1'工作表运行test宏
macroResult = Excel.ExecuteMacro(excelWorkBook, macro=&quot;test&quot;, listArgs=None, isSave=False)
print(macroResult)</code></pre>