2012-12-10 147 views

回答

3

我認爲最簡單的選擇是將.bas文件保存爲.vbs擴展名並將您的代碼修改爲VBScript;然後在Windows Script Host(WSH)下運行它。請記住,在Excel下的VBA中,您可以訪問許多內置對象;在WSH下的WSH中,您必須使用CreateObjectGetObject函數自己創建或訪問這些對象(請參閱this answer)。 (WSH有自己的一套內置對象)。在Excel的情況下,你需要開始:

​​

請記住,在VBScript,變量沒有類型,因此所有語句如:

Dim i As Integer 
Dim wks As Excel.Worksheet 

需要有As條款中刪除:

Dim i 
Dim wks 


有關兩者之間的差異具體細節,見 INFO: Visual Basic for Applications Features Not in VBScriptINFO: VBScript Features Not in Visual Basic for Applications
VBA有一個內置的IDE和調試器,在WSH下運行代碼時您不具備此功能,但可以使用Visual Sudio調試腳本文件。

cscript yourscript.vbs //D //X 
:通過從命令行調用它們 201320122010

調試腳本如下 - (倘無法安裝VS 2015年社區版,Visual Studio集成殼也行。

或:

wscript yourscript.vbs //D //X 

如果您有Office 2007或更早版本,您可以使用Microsoft腳本編輯器進行調試;有沒有需要下載和安裝儘管如此VS.,VS是遠比Microsoft Script Editor和VBA調試器更強大。

3

恐怕簡短的回答是,你不能,至少不是直接。 VBA和VBS是輕微的變體,雖然你可以將代碼保存到一個.vbs文件中,但我非常懷疑它會做任何事情,而不會將其更改爲VB腳本。

要製作一個.exe,你需要類似Visual Studio的東西。即使那樣,你可能需要重新修改你的代碼,使它成爲工作。

我想這取決於你的代碼做什麼。

0

我認爲每個人都在這裏提出了很好的觀點,但有一件事我沒有看到這將是一個大問題,在VBA和Visual Basic中,您可以使用On Error GoTo命令並使用諸如MainErrorHandler:在函數的底部。 VB腳本不允許這樣做,並且您需要使用On Error GoTo 0或On Error Resume接下來哪些在VBA和Visual Basic中都是允許的。但VB腳本中的錯誤處理在所有VB語言中都是允許的。

相關問題