我正在为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修改任何内容.
您如何获取代码?如果通过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 Interoperability with Visual Studio Tools for the Office System (3.0)》(位于http://msdn.microsoft.com/en-us/library/bb931201(v=office.12).aspx)应该会有所帮助。