是否有可能VBScript在生成excel文件时在宏文件中编写一个只要文件打开就能运行的宏?
我有一个VBScript自动生成一个excel文件和其中的一些数据,这运行一次并生成包含所有数据/排序等的文件 .
我需要的是在程序运行时有一些通常用宏运行的交互性,有人查看数据,这里的问题是因为它是一个自动生成的文件,没有保存宏 .
如果是这样,将如何实现,以后如何在vbscript中写入一个宏?
伟大的建议divo,是的我可以从模板创建它,但是我需要更多的灵活性和脚本中的变量集成 .
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
资料来源:Scripting Guy Add a Macro to an Excel Spreadsheet
String for excel macro creation
可能最简单的方法是手动创建包含所需宏的Excel文档 . 然后,此文档将作为VBScript的模板进行服务 .
您可以复制此模板,在Excel中打开它,然后使用VBScript将数据填充到数据中,而不是创建新文件 .
更复杂和灵活的选择是使用Excel对象模型 . 查找 ActiveWorkbook.VBProject.VBComponents 对象,它允许您将表单,模块和类添加到当前文档的VBA项目中 . 但是,此选项需要某些安全设置(基本上您必须允许以编程方式访问VBA项目) .
ActiveWorkbook.VBProject.VBComponents
2 回答
伟大的建议divo,是的我可以从模板创建它,但是我需要更多的灵活性和脚本中的变量集成 .
excel对象模型对象VBProject.VBComponents像魅力一样工作,并且正是我正在寻找的,为了寻找类似答案的其他人,我在查看VBProject对象时发现了这个:
资料来源:Scripting Guy Add a Macro to an Excel Spreadsheet
String for excel macro creation
可能最简单的方法是手动创建包含所需宏的Excel文档 . 然后,此文档将作为VBScript的模板进行服务 .
您可以复制此模板,在Excel中打开它,然后使用VBScript将数据填充到数据中,而不是创建新文件 .
更复杂和灵活的选择是使用Excel对象模型 . 查找
ActiveWorkbook.VBProject.VBComponents
对象,它允许您将表单,模块和类添加到当前文档的VBA项目中 . 但是,此选项需要某些安全设置(基本上您必须允许以编程方式访问VBA项目) .