4

我想使用 Python 在 Data.csv 的工作表上运行 MacroBook.xlsm 中包含的宏。

通常在 excel 中,我打开两个文件并将焦点转移到 Data.csv 文件并从 MacroBook 运行宏。python 脚本每天都会下载 Data.csv 文件,因此我无法将宏放入该文件中。

这是我的代码:

import win32com.client
import os
import xl

excel = win32com.client.Dispatch("Excel.Application")

macrowb = xl.Workbook('C:\MacroBook.xlsm')
wb1 = xl.Workbook('C:\Database.csv')
excel.Run("FilterLoans")

我得到一个错误,

" , u'xlmain11.chm', 0, -2146827284), 无)

错误指出 FilterLoans 在 Database.csv 文件中不可用...如何导入它?

4

2 回答 2

0

尝试将宏保存到“正常”项目并调用。

excel.Application.Run("Normal.ModuleName.SubName")

您甚至可以通过编程方式将模块添加到普通配置文件,但如果您没有足够的访问权限,Office 不允许您这样做。

于 2019-11-28T08:18:31.707 回答
0

1)您不能在 *.csv 文件上使用 VBA。您需要将 *.xlsm 文件作为活动工作簿。如果您的宏知道如何找到它,我认为您根本不需要打开 *.csv 文件。

2) 在 Office Excel 中启用 VBA 模块访问:

File
options
Trust Center
Trust Center Settings
Macro Settings
Enable VBA access

3)我正在使用这个函数来运行宏:

excel.Application.Run("FilterLoans")
于 2016-01-03T10:22:12.987 回答