excel:如何将.bas文件转换为VBScript / EXE或从命令行运行?

如何将.bas文件转换为VBScript / EXE或从命令行运行? 我在Excel中通过MS Visual Basic for Aplications来编写脚本,但是我只能在Excel下运行这个脚本。 我怎样才能使这个脚本为.vbs或.exe? ?

我认为最简单的select是将.bas文件保存为.vbs扩展名,并将您的代码修改为VBScript; 然后在Windows脚本宿主(WSH)下运行它。 请记住,在Excel下的VBA中,您可以访问许多内置对象; 在WSHW下的VBScript中,您将不得不使用CreateObjectGetObject函数自己创build或访问这些对象(请参阅此答案 )。 (WSH有自己的一组内置对象。)在Excel的情况下,您需要从以下开始:

 Dim xlApp Set xlApp = CreateObject("Excel.Application") 

请记住,在VBScript中,variables没有types,所以所有的语句如:

 Dim i As Integer Dim wks As Excel.Worksheet 

需要删除As子句:

 Dim i Dim wks 

有关这两者之间差异的确切详细信息,请参阅INFO:Visual Basic for Applications不在VBScript和INFO中的 应用程序function :不在Visual Basic for Applications中的VBScriptfunction 。


VBA有一个在WSH下运行代码时没有的内置IDE和debugging器,但是可以使用Visual Sudio来debugging脚本文件。 (如果您无法安装VS 2015 Community Edition,那么Visual Studio集成的shell也可以工作 – 2013,2012,2010 。

通过从命令行调用脚本来debugging脚本,如下所示:

 cscript yourscript.vbs //D //X 

要么:

 wscript yourscript.vbs //D //X 

如果安装了Office 2007或更低版​​本,则可以使用Microsoft脚本编辑器进行debugging; 没有必要下载和安装VS. 不过,VS比Microsoft脚本编辑器和VBAdebugging器都强大得多。

恐怕最简单的答案就是你不能,至less不能直接。 VBA和VBS是轻微的变种,虽然你可以将代码保存到一个.vbs文件,我非常怀疑它会做任何事情,而不会改变它为VB脚本。

要制作一个.exe,你需要像Visual Studio这样的东西。 即使这样,你可能也需要重做你的代码,使它成为工作。

我想这取决于你的代码做什么。

我认为每个人都在这里提出了很好的观点,但有一件事我没有看到,这将是一个大问题,在VBA和Visual Basic中,可以使用On Error GoTo命令并使用诸如MainErrorHandler之类的东西来设置Error行:function的底部。 VB脚本不允许这样做,并且您需要使用On Error GoTo 0或On Error Resume,这两个脚本在VBA和Visual Basic中都是允许的。 VB脚本中的error handling在所有VB语言中都是允许的。