

背景:
我在使用RPA新建Excel后,希望为新建Excel进行单元格格式及字体的初始设置,但是影刀提供的'设置格式'功能只能一条一条的设置,而使用'运行Excel宏'功能则必须要手动在Excel中添加好宏才可以执行功能,而我希望可以在流程中写好一键为Excel格式化,避免使用桌面自动化及人工操作。
于是上网查阅解决办法,查到了云潮大佬的社区帖子: https://www.yingdao.com/community/detaildiscuss?id=6b8ebffd-0731-483a-9855-0a88a7634cbd ,链接如上,办法和思路非常有效,但是我觉得原帖中只贴了一些代码和图片,也没有过程步骤的说明,我自己看了10多分钟才看明白大佬到底想表达什么。。。所以我希望在此基础上进行一些优化和步骤的编写好方便小白观看。
废话结束,步骤如下:
1.创建一个全局变量(普通变量也可以),变量名称为:macro_str,类型为:字符串。
默认值填写你需要运行的宏代码。注意:这里宏的过程名和之后运行宏的名称要统一(此处为FormatCells)。

2.新建一个Python模块,将以下代码粘贴到模块中,模块命名随意(此处为 Excel_vba.py )。
# excel_instance 为 Excel 应用/工作簿封装对象
# macro_str 为要插入的 VBA 宏代码字符串
def append_macro(excel_instance, macro_str: str) -> None:
# 新增一个标准模块(1 = vbext_ct_StdModule)
excel_app_module = excel_instance.workbook.VBProject.VBComponents.Add(1)
# 将宏代码字符串写入这个模块
excel_app_module.CodeModule.AddFromString(macro_str)3.在流程中需要使用宏的地方,添加‘调用模块’指令,参考以下内容填写:

4.添加‘运行Excel宏’指令,参考以下内容填写:

5.正常运行流程即可。
PS:如需自动删除EXCEL宏可以参考原贴中大佬的帖子,算是举一反三了。