【问题标题】:call vba function from python in already open excel file在已经打开的excel文件中从python调用vba函数
【发布时间】:2020-01-19 17:49:16
【问题描述】:

我正在尝试从 Python 运行 vba 宏,但具有宏的 excel 文件已经打开。所以我不想作为另一个实例再次打开它。

我已经尝试过 win32com 代码 - 但是它会重新打开同一文件的另一个实例并在该实例中进行更改并要求我另存为第二个 excel 文件。但我想在已经打开的文件中调用宏。并在调用该宏后将excel文件保持打开状态。 这是 File 所在的路径 - 它是一个私有共享驱动器

\nplofnp0001a\gtonnnfs10912400\CPM Other\PL Estimate\PL Estimate Sheets\DAILY PL ESTIMATE W NRPD RV2 v6_YK_v2.xlsm

folder_xlfile = '\\\\nplofnp0001a\gtonnnfs10912400\CPM Other\PL Estimate\PL Estimate Sheets'
xlfile = '\\DAILY PL ESTIMATE W NRPD RV2 v6_YK_v2.xlsm'

Filename=folder_xlfile + xlfile

import win32com.client

xl=win32com.client.DispatchEx("Excel.Application")
#wb = xl.Workbooks.Open(Filename)
xl.Application.Run(Filename + "!Module2.CopySummaryData")
#xl.Application.Quit()
del xl

预期结果 - 在已打开的 excelfile 中运行 vba 函数。

实际结果 - 继续运行而没有错误消息。我猜代码挂了。

【问题讨论】:

标签: python excel vba win32com


【解决方案1】:
xl.Application.Run(r"'DAILY PL ESTIMATE W NRPD RV2 v6_YK_v2.xlsm'!Module2.CopySummaryData")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-09
    • 2018-06-13
    • 2018-03-28
    • 2015-04-06
    • 2013-02-26
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多