我有一个2010 Excel 64位模型,它有一个VBA子程序来运行16个输入组合,这些组合都使用相同的Excel模型计算进行处理,然后将结果输出到模型中的选项卡。我可以访问高性能集群(HPC)并希望运行VBA代码,以便我可以并行运行16种组合,而不是HPC上的当前顺序进程。我该怎么做呢?例如,我是否需要将每个组合放入一个单独的子例程中并使用主VBA子例程来调用每个组合?我需要包含前端和后端VBA代码才能在HPC上运行模型吗?
答案 0 :(得分:0)
Excel VBA does not directly allow多线程,遗憾的是没有简单的VBA解决方案。
我可以在这里看到几个选项,这取决于您是否可以使用它们的问题。
在Excel 2007和2010中,工作表函数可以并行执行。如果您的VBA代码是函数而不是子函数,并且如果您的大部分数据来自工作表,则可以尝试利用它。
您可以自己编写一个处理多线程的DLL,call it from Excel。为此,您必须将代码移植到VB 6或VB.NET(或直接用C / C ++重写它),并手动处理多线程。