我正在为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.I不要使用Alt + F11修改任何内容。
答案 0 :(得分:2)
.cls,.frm和.bas是VBA文件。我建议你尝试使用VBE(Visual Studio等效的VBA)在Excel中调试代码。在这个环境中进行调试非常容易。
VB(VB.Net)和VBA之间的区别非常大。话虽这么说,VBA是一种相当简单的语言,所以如果你能够掌握C#,我相信你可以通过一些阅读和实验来学习VBA。
如果您对实际代码有疑问,建议您将其作为单独的问题发布。 :)
答案 1 :(得分:0)
你如何获得代码?如果通过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。
在http://msdn.microsoft.com/en-us/library/dd553655(v=office.12).aspx创建VBA宏以在Excel 2007中处理工作表。
本文<{3>}的{em> VBA与Office系统的Visual Studio工具(3.0)的互操作性应该会有所帮助。