繁体   English   中英

VB与VBA有什么区别?

[英]what is the difference between VB vs VBA?

我正在为Excel 2007开发这个项目(一个AddIn)。它为此目的使用aspose单元以及C#。 我没有编写代码,但是接管了其他人的项目。 所以我仍在学习excel部分,因为我只知道C#。 我注意到有一些代码用于创建工作簿/工作表。 我如何知道它是用VB还是VBA编写的,以便我可以学习它?文件扩展名就像.cls,.frm,.bas等。我使用的是Visual Studio 2010。

此外,工作簿/工作表在创建后也受密码保护。当我尝试通过VB / VBA代码(无论是什么)更改密码时,它会在构建期间产生错误,例如标识符预期,声明预期等。但是当我取消更改时,所有的错误都消失了。 我做的唯一更改是更改存储密码的字符串。 (字符串“password”已更改为“password1”)并突然其他代码行开始出错。错误是预期的标识符,声明预期等等,这对我没有意义。 因此,在通过VB / VBA进行密码保护后,我必须通过C#更改密码。 另外,我如何调试VB / VBA代码。 我尝试通过VS2010设置断点,但是当我运行项目时它没有击中它们。我确信工作表是使用VB / VBA创建的,所以它进入这些代码,但无法调试。

我使用Visual Studio2010打开AddIn,这就是如何使用C#和VB / VBA代码。我不使用Alt + F11修改任何内容。

.cls,.frm和.bas是VBA文件。 我建议你尝试使用VBE(Visual Studio等效的VBA)在Excel中调试代码。 在这个环境中进行调试非常容易。

VB(VB.Net)和VBA之间的区别非常大。 话虽如此,VBA是一种相当简单的语言,所以如果你能够掌握C#,我相信你可以通过一些阅读和实验来学习VBA。

如果您对实际代码有疑问,我建议您将其作为单独的问题发布。 :)

你怎么得到代码? 如果通过Excel使用VBE,例如按Alt + F11,那么它是VBA。 如果你打开一个项目,那么它可能是VB(VB6)。 请注意,VB.NET使用.vb扩展名。 此外,由于VBA是VB的子集,因此如果从VBE项目导出VBA,导出的文件默认为VB表兄弟的文件扩展名。

我们真的需要知道你如何获得代码。

就像我说的,VBA(6.x)是VB6的子集。 Excel部分只是一个使用VBA的对象模型。 VB.NET是不同的,因为文件扩展名是错误的。

因此,请专注于学习VBA和Excel 2007对象模型

MSDN在http://social.msdn.microsoft.com/Search/en-US?query=VBA&ac=8上搜索VBA。

创建VBA宏以在Excel 2007操作工作表网址http://msdn.microsoft.com/en-us/library/dd553655(v=office.12).aspx

本文的VBA与Office系统的Visual Studio工具的互操作性(3.0)http://msdn.microsoft.com/en-us/library/bb931201(v=office.12).aspx应该有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM