在Excel文件中写入macros的VBScript

当VBScript生成的时候,在Excel文件中写入一个macros是否可以在打开文件时运行?

我有一个VBScript自动生成一个Excel文件和一些数据,它运行一次,并生成所有的数据/sorting等文件

我需要的是在程序运行时有一些通常用macros运行的交互性,有人查看数据,这里的问题是自动生成的文件,没有保存macros。

如果是的话这将如何实现,一个macros如何被运行在vbscript?

伟大的build议divo,是的,我可以从模板创build它,但是这是一个情况下,我需要更多的灵活性和与脚本中的variables集成。

excel对象模型对象VBProject.VBComponents的作用就像一个魅力,正是我正在寻找的东西,为了寻找类似的答案,我发现这同时查看到VBProject对象的目的:

Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.DisplayAlerts = False Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls") Set xlmodule = objworkbook.VBProject.VBComponents.Add(1) strCode = _ "sub test()" & vbCr & _ " msgbox ""Inside the macro"" " & vbCr & _ "end sub" xlmodule.CodeModule.AddFromString strCode objWorkbook.SaveAs "c:\scripts\test.xls" objExcel.Quit 

来源: 脚本专家将macros添加到Excel电子表格

用于创buildExcelmacros的string

可能最简单的方法是手动创build一个包含所需macros的Excel文档。 然后,这个文档将作为你的VBScript的模板。

你可以复制这个模板,而不是创build一个新的文件,在Excel中打开它,并用VBScript填充数据。

更复杂和更灵活的选项是使用Excel对象模型。 查找ActiveWorkbook.VBProject.VBComponents对象,它将允许您将表单,模块和类添加到当前文档的VBA项目中。 但是,此选项需要某些安全设置(基本上,您必须允许以编程方式访问VBA项目)。