簡體   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