Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net VB应用程序创建多个Excel实例并在后台运行_Vb.net_Excel - Fatal编程技术网

Vb.net VB应用程序创建多个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 =

我有一个简单的VB应用程序,它允许用户通过勾选框选择一些要生成的界面

我正在循环检查勾选的条目,并为每个条目创建一个Excel实例,并在工作簿中执行相应的宏

我希望在后台为每个勾选的条目生成Excel实例。目前,我必须等待每个Excel实例运行,然后才能处理下一个实例

非常感谢你的帮助

以下是代码摘录:

    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实例中打开它们

  • 为每个必需的输入参数创建一个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文件中执行宏?