我在使用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版本。
答案 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.')