名称“Application”未定义

2024-04-26 01:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试打开excel工作簿并使用python运行宏。但是,宏存在于我的个人宏库中,我需要从那里运行它。当我尝试这样做时,出现了以下错误:

“无法运行宏宏宏可能在此工作簿中不可用…”

为了解决这个问题,我用了应用程序运行()希望这能让我运行一个我正在运行的工作簿中不存在的宏。但是,当我这样做时,我会得到另一个错误:

“名称‘Application’未定义”

下面是我的代码。很简单。你知道吗

.
.
.
# Open workbook
wb2 = xw.Book('C:/Users/AChakrav/Documents/LTspiceXVII/Circuits/INV/INVAMP_MEAS_Script.xlsm')
time.sleep(5)

Application.Run "'PERSONAL.XLSB'!CompiledTableGenerator"
#ExcelMacro_2 = wb2.macro('PERSONAL.XLSB!CompiledTableGenerator')
#ExcelMacro_2()
time.sleep(5)

Tags: 名称程序运行timeapplication错误sleepexcelpersonal
1条回答
网友
1楼 · 发布于 2024-04-26 01:18:29

您可以从不同的角度来看待这个问题,例如,尝试引用Python中的Personal.xlsb文件并从那里进行尝试。例如,要找到它,请在VBA的立即窗口中运行以下命令:

?Application.StartupPath

然后在Python代码中硬编码。你知道吗

然后在Personal.xlsb中写一些简单的东西如下:

enter image description here

在Python中,安装pipiwin32并按如下方式运行代码:

import win32com.client

xl=win32com.client.Dispatch('Excel.Application')
xl.Workbooks.Open('C:\\Users\\gropc\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\Personal.xlsb')
xl.Application.Run('Personal.xlsb!Modul1.SomeApplication')

显示带有日期和时间的消息框。VBA代码应该编写得很好,以确保它正确引用了所需的工作簿,但这是另一个问题。你知道吗

相关问题 更多 >