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

excel:如何将.bas文件转换为vbscript/exe或从命令行运行?,excel,vbscript,wsh,vba,Excel,Vbscript,Wsh,Vba,如何将.bas文件转换为vbscript/exe或从命令行运行? 我用MS Visual Basic for Applications在Excel中编写了脚本,但我只能在Excel下运行此脚本。如何将此脚本设置为.vbs或.exe 我恐怕简短的回答是你不能,至少不能直接。VBA和VBS是轻微的变体,虽然您可以将代码保存到一个.VBS文件中,但我非常怀疑它在不将其更改为VB脚本的情况下是否可以执行任何操作 要生成.exe,您需要类似Visual Studio的东西。即使这样,您也可能需要重新编写代

如何将.bas文件转换为vbscript/exe或从命令行运行?
我用MS Visual Basic for Applications在Excel中编写了脚本,但我只能在Excel下运行此脚本。如何将此脚本设置为.vbs或.exe

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

要生成.exe,您需要类似Visual Studio的东西。即使这样,您也可能需要重新编写代码,使其能够正常工作


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

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

Dim xlApp
Set xlApp = CreateObject("Excel.Application")
请记住,在VBScript中,变量没有类型,因此所有语句,例如:

Dim i As Integer
Dim wks As Excel.Worksheet
需要删除
As
子句:

Dim i
Dim wks

有关两者之间差异的详细信息,请参见和。
VBA有一个内置的IDE和调试器,在WSH下运行代码时没有,但可以使用Visual Sudio调试脚本文件。(如果无法安装VS 2015 Community Edition,Visual Studio集成的Shell也可以工作--、

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

cscript yourscript.vbs //D //X
或:


如果您安装了Office 2007或更早版本,您可以使用Microsoft脚本编辑器进行调试;无需下载和安装VS。然而,VS比Microsoft脚本编辑器和VBA调试器都强大得多。

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

看来您必须重写代码!
wscript yourscript.vbs //D //X