我们可以在C#for Excel中编写一个宏吗?

giz*_*gok 39 c# excel

我必须在excel中遍历大约25张才能进行操作.我正在使用vba进行操作并发现它非常慢,因此想知道我是否可以使用C#,如果这样做会帮助我加快这个过程.

aba*_*hev 41

从Excel工作簿中调用C#,如VBA宏 - 你不能

从C#应用程序访问Excel工作簿 - 您可以.这称为Microsoft Visual Studio Tools for Office(VSTO)

  • 像尤达一样说话 - 你这样说 (79认同)

Joe*_*Joe 10

虽然您可以使用VSTO将C#中的等效编写为当前的VBA宏,但我很怀疑它是否会对性能产生任何显着影响.

在这两种情况下,您将操纵相同的Excel COM对象,并且执行时间可能非常相似.

您的性能主要取决于您用来操作Excel对象的技术.举一个简单的例子,您可以在一个语句中将Excel范围中的值分配给二维数组:这比迭代代码中的行和列并将值逐个复制到数组要快得多.

我建议你发布一些你发现太慢的VBA代码,并询问有关提高性能的提示.


Ser*_*sov 6

您可以尝试使用我的ESharper加载项在C#中编写Excel自动化命令.它比创建单独的C#应用​​程序或加载项更容易,您可以访问Excel对象模型和Excel C API,并提供更多选项以进行性能优化.