python - 是否可以从 python 创建/编辑 excel 宏?

标签 python excel vba com

我目前正在从事一个项目,该项目要求我编写一系列(看似无穷无尽的)宏来重现我们的一位分析师设计的数据透视表。细节有所变化,但代码在各个示例中基本相同。

我想根据一些选项以编程方式生成 vba 代码,然后将宏添加到给定的工作表中。是否可以使用 win32com 或其他方式使用 python 创建 excel 宏?是否可以从另一个 excel 宏创建一个 excel 宏?还有其他想法吗?

项目背景,我有一个执行以下操作的 python 脚本:

  • 提取谷歌分析数据
  • 做各种分析
  • 将结果写入excel
  • 触发预先编写的宏将数据转换为格式精美的数据透视表
  • 通过电子邮件将其发送给可能实际上并未阅读它的人

最佳答案

是的,您可以使用另一个 Excel 宏创建一个 Excel 宏。为此,您需要告诉 Excel 信任对 VBA 项目对象模型的访问。 (该设置可在信任中心的宏选项中找到。)我不知道您是否可以从 Python 执行此操作,但如果可以,您可能还需要告诉 Excel 没问题。

为了便于编码,如果您在 Excel 中执行此操作,请添加对 Microsoft Visual Basic for Applications Extensibility 的引用。

您可能还想查看 MZ-Tools 3.0我发现将默认\通用代码添加到项目中非常有帮助。

另一方面,您的项目听起来适合代码重用。如果通用数据透视表代码在一个类/模块中,那么将它从一个打开的 Excel 项目复制到另一个项目真的很容易。 (只需在 Project Explorer 窗口中单击并拖动即可。)您还可以将其导出为文本文件,稍后再将其导回另一个项目。

关于python - 是否可以从 python 创建/编辑 excel 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913603/

相关文章:

python - 在 seaborn 中绘制多个箱线图

python - “集合”对象不可调用。如果你打算在 'mapReduce' 对象上调用 'Collection' 方法,它会失败,因为不存在这样的方法

python - 如何在数据框中进行多次替换?

vba 如果单元格包含任何格式的字符串

vba - 检测对象是否已与其客户端断开连接

python - 相当于 Go 中的 setdefault 吗?

c# - 如何使用 openxml 和 C# 在 Excel 工作表中获取范围

mySQL + vba,检查表中是否已存在某个项目

excel - 打印变量的名称

vba - 如何使 For 循环处理非整数