Vb.net VB应用程序创建多个Excel实例并在后台运行
我有一个简单的VB应用程序,它允许用户通过勾选框选择一些要生成的界面 我正在循环检查勾选的条目,并为每个条目创建一个Excel实例,并在工作簿中执行相应的宏 我希望在后台为每个勾选的条目生成Excel实例。目前,我必须等待每个Excel实例运行,然后才能处理下一个实例 非常感谢你的帮助 以下是代码摘录:Vb.net VB应用程序创建多个Excel实例并在后台运行,vb.net,excel,Vb.net,Excel,我有一个简单的VB应用程序,它允许用户通过勾选框选择一些要生成的界面 我正在循环检查勾选的条目,并为每个条目创建一个Excel实例,并在工作簿中执行相应的宏 我希望在后台为每个勾选的条目生成Excel实例。目前,我必须等待每个Excel实例运行,然后才能处理下一个实例 非常感谢你的帮助 以下是代码摘录: MsgBox("Starting") parmExcelAppName = "..{Pathname}\Data Extract v1.4.xlsm" xlapp =
MsgBox("Starting")
parmExcelAppName = "..{Pathname}\Data Extract v1.4.xlsm"
xlapp = CreateObject("Excel.Application")
xlbook = xlapp.Workbooks.Open(parmExcelAppName)
xlapp.Application.Visible = True
xlapp.Visible = False
parmWorksheetName = "CURRENCY_RATE"
parmWorksheetOutputSaveName = "C:\Users\pete05\Downloads\Interfaces"
parmApplyFilter = "False"
parmRunMode = "REFRESH"
parmAddColumnHeadings = "True"
parmEmailRecipients = "someone@companyname.com"
xlapp.Application.Run("MOD00_RUNMODE.Run_BatchMode ", _
"" & parmWorksheetName & "", _
"" & parmWorksheetOutputSaveName & "", _
"" & parmApplyJDAFilter & "", _
"" & parmRunMode & "", _
"" & parmAddColumnHeadings & "", _
"" & parmEmailRecipients & "")
xlapp.Quit()
MsgBox("Finished")
理想情况下,“开始”和“完成”消息将几乎立即显示,并将Excel文件推到后台。然后我会重复下一个勾选的条目。我只能建议您在这个阶段尝试这个。我不知道它是否有效。我怀疑,即使像这样打开多个文件,也会在同一个Excel实例中打开它们
Shell
命令,使用命令行(即excel.exe“c:\book1.xlsx”
)打开excel文件这真是暗中捅了一刀。我所读到的一切都表明,这要么不起作用,要么效果不太好。要使其可靠,您需要从
MOD00\u RUNMODE.Run\u BatchMode
获取代码。例如,如果它只是调用一个web服务或从数据库中读取数据,那么您应该能够在Excel之外复制它,并在进给系统允许的情况下并行运行它。这将有助于您共享代码。当然可以创建多个Excel实例。分享你的代码可能会给我们一个线索,告诉我们为什么你必须等待。目前,我只有一个简单的运行脚本,它会在进程启动时显示一条消息,并在进程完成时停止。理想情况下,我希望进程分流到一个单独的实例中,并立即显示“Finished”消息,这将允许我对下一个接口执行相同的操作。看起来VBA中的异步调用很困难。我只能建议您将上述代码转换为采用适当参数的VBS,然后使用Shell
从VBA中异步调用它。您能指出此代码中更改的参数是什么吗?i、 e.如果您想并行运行其中两个,是否会更改.xls文件?我猜MOD00\u RUNMODE.Run\u BatchMode
宏不是您可以访问的?我已经有一个VBS脚本,它从各个界面快捷方式获取参数来创建文件。我所追求的是一个自我包含的EXE,它将做同样的事情,但听起来我最终要做的就是调用VBS并向其提供相同的参数。出于兴趣,我将如何执行此操作并在后台运行VBS?感谢您的回复。很抱歉,由于某些原因,我误解了,我认为此代码需要在Excel VBA中。您应该能够从VB.Net应用程序异步调用Excel。我看看能不能找到一些例子。能否确认需要同时在多个不同的Excel文件中执行宏?