我对.net了解不多,但我正在开发一个项目,其中要求将嵌入电子表格中的一些Excel VBA代码移植到独立的C#。
它们是否可以自动化(或半自动化)此端口或编译?它们的效果如何?
答案 0 :(得分:7)
没有。你最好的选择,如果不是很多代码就是手工完成。
否则,您的里程可能会有所不同。您可以尝试将VBA转换为VB.NET,然后使用tool将其转换为C#。
答案 1 :(得分:1)
这是一个老线程,但我想我会完成它:
如果您需要将代码转换为C#,请使用Telerik的Web代码转换器: http://converter.telerik.com/。只需粘贴您的VBA代码(确保您没有使用Excel特定的函数或变量,如Range,Worksheets等)并转换。您应该能够在Visual Studio中轻松地重用C#.NET项目中的代码。
如果要使库在Excel中可重复使用(使其可见COM)check-out this post here.
如果您不需要使DLL可见,只需在Visual Studio中创建一个VB.NET项目,编译并修复任何找到的编译错误:)。
否则,如果希望DLL直接从Excel自动化 - 我最近创建了一个加载项,就是这样做的。它直接从您的工作簿创建一个COM可见的DLL(只需选择您的VBA函数),并将所需的加载过程粘贴到您的工作簿中。 Find it here.
答案 2 :(得分:0)
尝试使用www.tmssoftware.com/site/flexcelnet.asp上的FlexCel.NET,它们也有非商业版本。