gpt4 book ai didi

vba - "New"Excel.Application 与 Excel.Application

转载 作者:行者123 更新时间:2023-12-02 06:09:55 29 4
gpt4 key购买 nike

我正在寻求有关"new"对对象和脚本的影响的澄清。

我的理解是,如果我需要对 Excel 文档执行操作并且应用程序已关闭,那么我应该使用 New Excel.Application。

如果我保持此应用程序处于事件状态(例如通过诸如工作簿之类的对象),并且稍后在脚本中我决定打开另一个工作簿,我应该仍然使用 New Excel.Application 还是使用 Excel.Application 更好然后呢?

我担心的是,我将编写一个长脚本,将在至少 5 个工作簿上执行操作。我必须从一本工作簿切换到另一本工作簿,然后再回到前一个...

如果每次脚本创建一个新的 Excel.Application 时,我最终可能会运行相当多的应用程序,并且我担心这种困惑会产生问题。

这样写比较合适:

Dim NxlApp as New Excel.Application
Dim xlApp as Excel.Application

NxlApp.Workbooks.Open "C:\Users\...\WorkbookA.xlsx"
NxlApp.Visible = True

'Perform actions on WorkbookA (keep it open)


Set ExcelApp = GetObject("", "Excel.Application.14")
xlApp.Workbooks.Open "C:\Users\...\WorkbookB.xlsx"
xlApp.Visible = True

'Perform actions on WorkbookB (keep it open)


'Go back to WorkbookA (using the xlApp variable this time)

xlApp.Workbook("A.xlsx")...

最佳答案

I am going to write a long script that will perform actions on at least 5 Workbooks

好问题,简短的回答是您可以在一个应用程序对象中打开 5 个工作簿。

如果您使用的是 Excel(其他情况请参见下文),那么您已经有一个 Excel.Application。然后,您可以将每个工作簿设置为不同的对象或按名称引用它们:

dim wb1, wb2 as Excel.Workbook, wb3 as New Excel.Workbook 'blank is
same as Variant set wb1 = application.open("path/wb.xlsx") msgbox
wb1.name 'ref by object msgbox
workbooks("wb.xlsx").name 'ref by name

My understanding is that if I need to perform actions on an excel document and the application is closed then I should use New Excel.Application

如果您不在 Excel 中(例如在 Access 中),那么您可能想要创建 Excel.Application 对象,以下是一些提示:

Dim nXlApp as New Excel.Application

与以下效果相同:

Dim xlApp as Excel.Application
Set xlApp = New Excel.Application 'Early Binding
Set xlApp = CreateObject(“Excel.Application”) 'Late Binding

不要在循环内定义(dim),但是您可以根据需要多次实例化(设置)同一对象。如果您在控件(按钮等)内使用全局对象(不推荐但有时很方便),您可以使用如下内容:

if xlApp is Nothing then set xlApp = CreateObject(“Excel.Application”)

完成后别忘了打扫房间!

wb1.Close False
set wb1 = Nothing 'do this once for each defined object, anything using New/Set

另请参阅,

关于vba - "New"Excel.Application 与 Excel.Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821426/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com