可能的错误? xlwings无法运行Excel宏?

时间:2016-10-23 10:19:49

标签: python excel excel-vba macros xlwings vba

我在使用xlwings从Python运行宏时遇到了问题。尽管遵循了xlwings文档中的代码,但我无法让xlwings执行Excel宏。例如,在名为“Book.xlsm”的Excel工作簿中:

' in Excel workbook Book.xlsm
Sub Test()
   Set ws = Worksheets("ABC")
   ws.Range("A1").Value = 10
End Sub

此宏在Excel中运行正常。但是当我尝试从Python调用这个模块时,它失败了:

# in Python
import xlwings

wb = xlwings.Book('C:\\Book.xlsm')
wb.macro('Test')
print('done.')

没有错误消息。 Python代码只是运行和结束,打印消息“完成”。但是当我检查工作表ABC时,没有写任何内容。请注意我能够连接到此工作簿并使用xlwings更改单元格值。我无法让它运行Test宏。

另请注意,之前我使用了更旧的xlwings(我认为是0.7.0之前),它运行我的宏没有问题。我现在正在使用0.10.0版本。

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

在VBA中

Sub Test(number)
   Set ws = Worksheets("Hoja1")
   ws.Range("A1").Value = number
End Sub

在python中:

import xlwings as xw
wb1 = xw.Book('Libro1.xlsm')    
macro=wb1.macro('Test')
macro(10)
print('done.')