我希望在 HPC 网格上并行化 Excel 计算,我正在使用 Excel 2007,所以我试图通过 XLL 中的 UDF 对其进行多线程处理,因为它是唯一的方法(至少在 2007 年)。
我想用 C# 编写 XLL 代码,正如这个线程建议的那样,我可以使用 exceldna。
但是我不明白我应该如何多线程。在多线程处理时,我是否必须在 C# 中重新编写所有 VBA 函数?我可以只创建几个线程,每个线程调用一个 VBA 宏吗?
Excel-DNA允许您可能会发现有用的不同方法:
在这些情况下,调用 Excel VBA 没有任何意义 - Excel 将始终确保 VBA 代码在 Excel 的主线程上运行。
如果您的函数代码在 VBA 中,您可以考虑将 VB.NET 用于您的 Excel-DNA 插件,而不是 C# - 这可能会使您轻松迁移到 .NET。您还可以在托管的 Excel-DNA 加载项中混合使用 C# 和 VBA。