Python - 运行Excel宏

时间:2012-06-13 22:03:42

标签: python excel-vba win32com vba excel

我想使用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,'发生异常。',(0,   u'Microsoft Excel',u“无法运行宏'FilterLoans'。宏   可能无法在此工作簿中使用,或者可能禁用所有宏。“,   u'xlmain11.chm',0,-2146827284),无)

错误说明Filter.coans在Database.csv文件中不可用...如何导入它?

2 个答案:

答案 0 :(得分: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")

答案 1 :(得分:0)

尝试将宏保存到“普通”项目并调用。

AttachmentService

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