2012-06-13 223 views
3

我想用Python來運行Data.csv中的工作表上的MacroBook.xlsm中包含的宏。Python - 運行Excel宏

通常在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),無)」

該錯誤指出FilterLoans不可用在Database.csv文件中...我如何導入它?

+1

從來沒有使用Python,但只是一種猜測:'macrowb .Run(「FilterLoans」)'? –

+1

在這裏:P我沒有使用Python,所以試試這個'excel.Run(「MacroBook!FilterLoans」)' –

+0

Siddharth的代碼工作,謝謝! @iDevlop - 這不起作用,因爲它試圖在macrowb上運行代碼。 – user1137778

回答

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")