首页 文章

可能的错误? xlwings无法运行Excel宏? [重复]

提问于
浏览
2

这个问题在这里已有答案:

我在使用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 回答

  • 1

    请尝试以下方法:

    In VBA

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

    In python:

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

相关问题