从外部VBS脚本的Excel Addin执行宏

时间:2017-12-14 10:41:19

标签: excel vba excel-vba vbscript excel-addins

我有一个VBS脚本,每次运行时都会生成一个Excel报告。

我想在此报告中添加一些格式。为此,我创建了一个包含宏的加载项文件(.xlam),该宏执行所需的所有格式化。

在Excel GUI中,我可以将宏添加到功能区并通过单击手动执行。这没关系,效果很好。

我现在要做的是从最初生成此Excel报告的脚本运行此宏。因此,第一次打开报告时,它会根据需要进行格式化,不需要执行任何手动步骤。

但是我不确定如何在VBS中这样做。

我能够通过以下代码执行已保存到工作簿的宏,但是在创建新工作簿时,这不是一个选项。

sReportName = "C:\Report.xls"
Set oExcel = CreateObject("Excel.Application")
Set oWorkbook = oExcel.WorkBooks.Open(sReportName)
oExcel.Run("Macro1")
oWorkbook.Save
oWorkbook.Close
Set oExcel = Nothing
Set oWorkbook = Nothing

我尝试过以下各种变体,但是在执行oExcel.Run行时Excel会冻结,我必须终止这个过程:

sReportName = "C:\Report.xls"
Set oExcel = CreateObject("Excel.Application")
Set oWorkbook = oExcel.WorkBooks.Open(sReportName)
oExcel.Run("FormatReport.xlam!FormatReport")
oWorkbook.Save
oWorkbook.Close
Set oExcel = Nothing
Set oWorkbook = Nothing

有可能这样做吗?对于我想要达到的目标,这甚至是正确的方法吗?

0 个答案:

没有答案