我想使用 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")
我得到一个错误,
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Cannot run the macro 'FilterLoans'. The macro may not be available in this workbook or all macros may be disabled.", u'xlmain11.chm', 0, -2146827284), None)
错误表明 FilterLoans 在 Database.csv 文件中不可用...我如何导入它?
最佳答案
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")
关于Python - 运行 Excel 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023990/