2

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

4

3 回答 3

3

恐怕简短的回答是你不能,至少不能直接。VBA 和 VBS 是轻微的变体,虽然您可以将代码保存到 .vbs 文件中,但我非常怀疑它是否会在不将其更改为 VB 脚本的情况下做任何事情。

要制作 .exe,您将需要 Visual Studio 之类的东西。即使这样,您也可能需要重新编写代码以使其正常工作。

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

于 2012-12-10T12:51:27.877 回答
3

我认为最简单的选择是.bas使用扩展名保存文件.vbs并将代码修改为 VBScript;然后在 Windows Script Host (WSH) 下运行它。请记住,在 Excel 下的 VBA 中,您可以访问许多内置对象;在 WSH 下的 VBScript 中,您必须使用or函数自己创建或访问这些对象(请参阅此答案) 。(WSH 有自己的一组内置对象。)对于 Excel,您需要从以下内容开始:CreateObjectGetObject

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 功能不在 VBScriptINFO:VBScript 功能不在 Visual Basic for Applications中。
VBA 有一个内置的 IDE 和调试器,这是在 WSH 下运行代码时所没有的,但是您可以使用 Visual Sudio 来调试脚本文件。(如果您无法安装 VS 2015 社区版,Visual Studio 集成 shell 也可以工作 - 201320122010

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

cscript yourscript.vbs //D //X

或者:

wscript yourscript.vbs //D //X

如果您安装了 Office 2007 或更早版本,则可以使用 Microsoft 脚本编辑器进行调试;无需下载和安装 VS。尽管如此,VS 还是比 Microsoft Script Editor 和 VBA 调试器强大得多。

于 2012-12-10T14:06:58.513 回答
0

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

于 2014-12-12T05:21:32.177 回答