我有一个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
有可能这样做吗?对于我想要达到的目标,这甚至是正确的方法吗?