如果您要编写功能相同的程序,我很好奇两者的性能比较。我正在开发一个项目,我开始认为,考虑到我需要在VBA中执行的比较函数的数量,加法可能更合适。
答案 0 :(得分:14)
取决于这些计划的作用以及他们如何做。
VSTO /.net比VBA更快,并允许您编写在多个线程上运行的代码。但Excel是COM,最终所有东西都需要进入STA(单线程单元)管道,托管(.net)代码通过COM Interop与COM对话,即它通过主互操作程序集与Excel通信, 比“原生”VBA慢。
换句话说:
Best可以是一个混合解决方案:在VBA中公开用户定义的函数,并将VBA代码调用到引用的COM可见.net DLL中,该DLL执行实际计算,甚至不使用Excel互操作程序集。
编写良好的VBA代码也可以胜过同等的VSTO代码。
考虑到我需要在VBA中执行的比较函数量,我开始认为插件可能更合适。
您也可以在VBA中编写Excel加载项。涉及的技术越少,他们彼此交谈的次数就越少;在一天结束时,您可以根据您的要求,环境和经验,对多种事物的重视程度进行平衡: