在不打开excel的情况下运行宏

时间:2012-10-06 11:07:37

标签: excel excel-vba excel-2007 vba

我想知道如何将在Excel VBA上编写的VBA代码分配给某种程序/程序或者与dos相关的文件路径,您可以直接在不打开Excel的情况下使用它。换句话说,我想有一个桌面图标,我可以挑起我指定的vba代码。

5 个答案:

答案 0 :(得分:4)

你可以轻松完成。

在VBS文件中添加以下内容(例如example.vbs)。这只是一个可以使用记事本编写的文本文件:

'Code should be placed in a .vbs file
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:\path\to\my\excel\file\myExcelMacroFile.xlsm'!MyModule.MyFunctionName"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing

然后你可以在VBS文件上加倍clic来执行它。

来源:http://wellsr.com/vba/2015/excel/run-macro-without-opening-excel-using-vbscript/

答案 1 :(得分:2)

如果Excel宏中的VBA不引用Excel对象,则只需将代码复制到文本文件中,然后将扩展名更改为.VBS即可。但是,当您使用类型时,VB脚本不喜欢它,只需从Dim语句中删除“AS something”。

我经常这样做是为了获得Intellisense的好处,我不会使用记事本。

如果我的假设是正确的,那么您可能希望将标记更改为VB Scripting而不是Excel以获得适当的帮助。

答案 2 :(得分:1)

如果我明白这一点,你可以简单地在文本文件中编写VBS代码并将其重命名为.vbs (确保文件结尾在Windows中可见)。双击时,Windows Scripting Host将执行该文件。 VBS缺少VBA的一些功能,但您可以使用CreateObject / GetObject做很多事情。

答案 3 :(得分:0)

虽然学习曲线可能有点陡峭,但您可以考虑使用AutoHotKey。这允许您创建自己的脚本,如果需要,将它们转换为(相当大).exe文件。 AutoHotKey是免费的!

答案 4 :(得分:0)

写一个打开excel的cmd或ps1,然后在那个excel的启动中运行你的宏...然后在完成后关闭它。

这可能是一种解决方案,但您可能正在做一些在正确的计划环境中不必要的事情。

相关问题