3

我想知道您如何将在 Excel VBA 上编写的 VBA 代码分配给某种过程/程序或与 dos 相关的文件路径,您可以直接将其分配给无需打开 excel。换句话说,我想要一个桌面图标,我可以激发我分配给的 vba 代码。

4

5 回答 5

9

你可以轻松做到。

在 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/

于 2016-10-13T08:46:05.387 回答
3

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

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

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

于 2012-10-06T15:07:54.390 回答
2

If I understand that right, you can simply write VBS code in a text file and rename it to .vbs (make sure file endings are visible in Windows). On doubleclick the file is executed by the Windows Scripting Host. VBS lacks some functionality of VBA but you can do a lot with CreateObject/GetObject.

于 2012-10-06T11:56:38.567 回答
0

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

于 2012-10-07T09:45:48.967 回答
0

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

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

于 2012-10-23T13:44:12.640 回答