假设我有一个名为trigger.xlsm
的工作簿,它存储一个宏,该宏将遍历trigger.xlsm
所在的同一目录下的所有其他工作簿,并以某种方式对其进行转换。
我绝对可以打开trigger.xlsm
,然后运行宏。但我觉得没有必要先打开trigger.xlsm
。我可以在不打开trigger.xlsm
的情况下运行宏吗?或者我可以将trigger.xlsm
更改为trigger.exe
文件,只需点击trigger.exe
文件即可?
如果我必须解决任何其他编程语言(如Python)(我对Python更熟悉)来完成此任务,建议使用哪些第三方软件包?
BTW,这是一个关于自动化设计的问题,如果您有任何其他想法而不是使用.exe文件,也可以随时告诉我!
答案 0 :(得分:0)
通过Excel而不创建exe
的一种方法是创建Office.Interop
加载项。有startup
个事件可供您参考VBA
代码并执行Run("nameOfYourMacro")
。
如果您正在寻找python替换here's the same question。我特别喜欢Parfait Gasana在那里的回答,对你来说可能是最有益的。
答案 1 :(得分:0)
假设您在Workbook_Open()
事件上有您的宏。您可以使用此代码打开该工作簿。
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = true
'<~assuming the file to be opened is in the same folder
Set fso = CreateObject("Scripting.FileSystemObject")
objpath = fso.GetParentFolderName(wscript.ScriptFullName) & "\[NameOfWorkbook].xlsx"
Set objWorkbook = objExcel.Workbooks.Open(objpath)
将其粘贴到记事本中并使用.vbs
文件扩展名保存(与工作簿位于同一文件夹中)。