如何将 .bas 文件转换为 vbscript/exe 或从命令行运行?我通过 MS Visual Basic for Aplications 在 Excel 中编写了脚本,但我只能在 Excel 下运行此脚本。我怎样才能使这个脚本成为 .vbs 或 .exe ??
3 回答
恐怕简短的回答是你不能,至少不能直接。VBA 和 VBS 是轻微的变体,虽然您可以将代码保存到 .vbs 文件中,但我非常怀疑它是否会在不将其更改为 VB 脚本的情况下做任何事情。
要制作 .exe,您将需要 Visual Studio 之类的东西。即使这样,您也可能需要重新编写代码以使其正常工作。
我想这取决于你的代码做什么。
我认为最简单的选择是.bas
使用扩展名保存文件.vbs
并将代码修改为 VBScript;然后在 Windows Script Host (WSH) 下运行它。请记住,在 Excel 下的 VBA 中,您可以访问许多内置对象;在 WSH 下的 VBScript 中,您必须使用or函数自己创建或访问这些对象(请参阅此答案) 。(WSH 有自己的一组内置对象。)对于 Excel,您需要从以下内容开始:CreateObject
GetObject
Dim xlApp
Set xlApp = CreateObject("Excel.Application")
请记住,在 VBScript 中,变量没有类型,因此所有语句,例如:
Dim i As Integer
Dim wks As Excel.Worksheet
需要As
删除该子句:
Dim i
Dim wks
有关两者之间差异的详细信息,请参阅INFO:Visual Basic for Applications 功能不在 VBScript和INFO:VBScript 功能不在 Visual Basic for Applications中。
VBA 有一个内置的 IDE 和调试器,这是在 WSH 下运行代码时所没有的,但是您可以使用 Visual Sudio 来调试脚本文件。(如果您无法安装 VS 2015 社区版,Visual Studio 集成 shell 也可以工作 - 2013、2012、2010。
通过从命令行调用脚本来调试脚本,如下所示:
cscript yourscript.vbs //D //X
或者:
wscript yourscript.vbs //D //X
如果您安装了 Office 2007 或更早版本,则可以使用 Microsoft 脚本编辑器进行调试;无需下载和安装 VS。尽管如此,VS 还是比 Microsoft Script Editor 和 VBA 调试器强大得多。
我认为每个人都在这里提出了很好的观点,但我没有看到这会成为一个大问题的一件事是,使用 VBA 和 Visual Basic,您可以使用 On Error GoTo 命令并使用诸如 MainErrorHandler 之类的东西设置错误行:在函数的底部。VB 脚本不允许这样做,您需要使用 On Error GoTo 0 或 On Error Resume next,这在 VBA 和 Visual Basic 中都是允许的。然而,所有 VB 语言都允许在 VB 脚本中进行错误处理。