【问题标题】:Follow up question on running a vba macro using python跟进使用 python 运行 vba 宏的问题
【发布时间】:2020-04-17 12:08:37
【问题描述】:

您好,我正在使用此处提供的答案 Running an Excel macro via Python?

代码:

filename = "NewVba.xlsm"

if os.path.exists(filename):
    xl=win32com.client.Dispatch("Excel.Application")
    xl.Workbooks.Open(os.path.abspath(filename), ReadOnly=1)
    xl.Application.Run(filename+"!"+ "PK_new_try")
##    xl.Application.Save() # if you want to save then uncomment this line and change delete the ", ReadOnly=1" part from the open function.
    xl.Application.Quit() # Comment this out if your excel script closes
    del xl

运行良好,唯一的问题是当我将文件放在其他文件夹中并提供如下所示的整个路径时 filename = "C:\Users\kamathp\Downloads\ExcelVBAs\NewVba.xlsm"

我收到一个错误:

File "<input>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

从哪里知道我该如何解决这个问题??

谢谢,

【问题讨论】:

    标签: python excel vba


    【解决方案1】:

    你的错误说明了一切。您需要转义 escape character \
    这意味着您的路径需要如下所示:"C:\\Users\\kamathp\\Downloads\\ExcelVBAs\\NewVba.xlsm"

    【讨论】:

    • 感谢@Nacorid,仍然收到此错误 - result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args) pywintypes.com_error: (-2147352567, 'Exception ', (0, 'Microsoft Excel', "无法运行宏 'C:\\Users\\kamathp\\Downloads\\ExcelVBA\\NewVba.xlsm!PK_new_try'。此工作簿中可能没有该宏或者所有宏都可能被禁用。", 'xlmain11.chm', 0, -2146827284), None)
    • 如何从我的 python 代码中启用宏? (虽然我认为它们已启用)
    • @PrasKam 这听起来像是一个 XY 问题。检查你的 VBA 代码是否编译,你得到的错误是一般错误,如果没有,你应该问一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多