1

我一直在尝试将运行 Excel 宏的 VBSscript 放在一起。我使用了这个论坛上其他线程的几个脚本以及网络上其他地方的脚本。

我发现这个论坛对其他有类似问题的人最有帮助。这里的专家就是:专家。

我是脚本写作的新手。我的经验仅限于在试错过程中剪切和粘贴示例脚本。使用这个特定的脚本,我似乎无法找到从 VBSscript 运行 Excel 宏的正确组合。

这是我当前正在运行的代码:

Set xlObj = CreateObject("Excel.application")
xlObj.Workbooks.Open "C:\Documents and settings\user\Desktop\Excel_macro_email.xls"
xlObj.Run "macro_email" 'name of macro
xlObj.ActiveWorkbook.Saved = True
xlObj.ActiveWindow.Close
xlObj.Quit

我正在使用 XLnow OnScript Editor 来编译/调试脚本,并且编辑器没有发现任何问题。当我双击 .vbs 文件时,cmd 窗口会弹出一秒钟,我可以看到那里有一些输出,但由于它关闭得太快而无法读取。(我还研究了如何将结果输出到文件中,但我正在取得进展,可能会解决所有这些问题。

有人愿意帮助纠正这个脚本吗?如果您可以提供帮助并提出一些代码建议,还请包括在脚本中放置代码的位置,或者您可能会将其包含在完整的脚本中。如何处理我在这里找到的建议几乎与使用什么代码一样大。

感谢您提供的任何帮助。我为我缺乏专业知识而道歉。最后,在一点帮助下,我会从经验中学习。

这是脚本的更新,添加了 sub,如下所示:

Sub OpenAndRun (Excel_macro_email)

Set xlObj = CreateObject("Excel.Application")
xlObj.Workbooks.Open "C:\Documents and Settings\user\Desktop\Excel_macro_email.xls"
xlObj.Run "Excel_macro_email.xls,macro_email"
xlObj.ActiveWorkbook.Saved = True
xlObj.ActiveWindow.Close
xlObj.Quit

End Sub

我仍然没有让宏运行。cmd 窗口像以前一样短暂打开,但现在我在它闪烁时看不到任何输出。

有什么建议么?

这是发布此问题的解决方案'

感谢您的答复。

我已经尝试过这个脚本的 seceral 版本。在最新版本中,我添加了一个“Sub”行和“End Sub”,这可能会有所帮助。最终的解决方案是当我发现 Excel 文件的文件扩展名不是 .xls 而是 .xlsm 时。当我添加“m”(我猜是启用宏)时,最新版本的脚本开始工作。

她是工作版本:

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
'~~> Change Path here
Set xlBook = xlApp.Workbooks.Open("C:\Users\Thomas\Desktop\Excel_macro_email.xlsm", 0, True)
xlApp.Run "macro_email"
xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit

我希望这可以帮助其他有同样问题的人。谢谢你的帮助。

4

0 回答 0