VB应用程序创建多个Excel实例并在后台运行

时间:2014-08-15 14:39:23

标签: vb.net excel

我有一个简单的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片段会被推入后台。然后我会重复下一个勾选的条目。

1 个答案:

答案 0 :(得分:0)

我只能在这个阶段建议你尝试这个。我不知道它是否会奏效。我怀疑即使打开这样的多个文件也会在同一个Excel实例中打开它们。

  1. 为每个必需的输入参数创建一个Excel文件
  2. 在excel文件中添加启动宏,以便在文件打开时调用上面的宏
  3. 使用excel.exe "c:\book1.xlsx"命令使用命令行(即Shell)打开excel文件。
  4. 这真的只是在黑暗中刺伤。我读过的所有内容都表明这不会起作用,也不会起作用。为了使这个可靠,您需要从MOD00_RUNMODE.Run_BatchMode获取代码。如果它只是调用一个Web服务或者从数据库中读取,那么你应该能够在Excel之外重现它并在饲喂系统允许的情况下并行运行它。