是否可以将VBA转换为C#?

我在VBA中有一些代码块模块可以在少数Access数据库上运行。 如果我想将编码转换为C#环境,我想知道如何继续。 是否有可能实现和获得与我现在使用Access和VBA相同的结果? 在这一点上,我对C#完全陌生。

目前无法自动转换,但手动执行此操作也有助于提高您的C#技能。 这里有一篇十大文章,带您了解常见的差异:

http://msdn.microsoft.com/en-us/library/aa164018%28office.10%29.aspx

您还可以找到以下链接:

使用C#开发Office解决方案的MSDN页面:

http://msdn.microsoft.com/en-us/library/ms228286.aspx

MSDN Visual C#应用程序开发页面(从C#开发开始):

http://msdn.microsoft.com/en-us/library/aezdt881.aspx

祝你好运,我希望这会有所帮助。

需要注意的一点是,在VBA中编码时会自动包含一些对象名称空间和库引用。 在C#中工作时需要明确添加这些内容。 例如,

Selection.TypeText("foo") 

在VBA成为

 using Microsoft.Office.Interop.Word; Application word = new Application(); word.Selection.TypeText("foo"); 

在C#中。 右键单击“解决方案资源管理器”中的“引用”文件夹并选择“添加引用”,即可添加库引用。

您可以在这里找到有关msdn上这个确切主题的一些有用信息

通常,您应该能够手动转换代码。 您将找不到任何可以执行此操作的自动代码转换器。

话虽这么说,你用来访问数据的框架在C#和VBA世界中是完全不同的(它们在VB.NET和VBA之间甚至是完全不同的!)。 因此,在开始之前,您将要阅读ADO.NET。

http://www.developerfusion.com/tools/convert/vb-to-csharp/

不完美,但它会让你开始使用sytax。 为了记录,这与您自己学习的内容无法比较。

鉴于VBA非常类似于vb.net,我建议你转换为VB.net。 实际上,您通常可以在代码中剪切+粘贴,特别是如果此类代码来自代码模块。 如果您的代码有DAO.Recordsets,那么我建议在VB.net中创建一个“模仿”dao.recordset的类。 因此,大多数VBA代码可以接近100%进入vb.net代码模块。 因此,这表明您不需要转换,只需将VBA代码移动到VB.net即可。 事实上,VBA中99%的命令都存在于VB.net中的SAME语法。