我想知道如何将在Excel VBA上编写的VBA代码分配给某种程序/程序或者与dos相关的文件路径,您可以直接在不打开Excel的情况下使用它。换句话说,我想有一个桌面图标,我可以挑起我指定的vba代码。
答案 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的启动中运行你的宏...然后在完成后关闭它。
这可能是一种解决方案,但您可能正在做一些在正确的计划环境中不必要的事情。