繁体   English   中英

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

[英]Running Macros without opening excel

我想知道如何将Excel VBA上编写的VBA代码分配给某种过程/程序,或者分配与dos相关的文件路径,而无需打开excel就可以直接使用。 换句话说,我希望有一个桌面图标,我可以搅拌分配给我的VBA代码。

您可以轻松做到。

在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文件来执行它。

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

如果我理解的没错,您可以简单地在文本文件中编写VBS代码并将其重命名为.vbs(确保文件结尾在Windows中可见)。 双击时,该文件由Windows脚本宿主执行。 VBS缺少VBA的某些功能,但是您可以使用CreateObject / GetObject做很多事情。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM