范围
我正在通过C#自动生成一些Excel报告。问题是,当涉及到“功能”时,我的支持库EPPlus并未涵盖所有内容。
解
由于我知道VBA支持在Excel Files上需要执行的所有操作,因此我决定使用它来完成C#中无法完成的所有操作。这是我当前用于生成报告的流程
1-设置“模板” excel文件(包含配置到Workbook_Open
事件中的我需要的所有VBA代码,以便他们在打开excel文档后立即运行)
2-运行我的C#代码以打开模板,将其填充数据,生成数据透视表,图表等
3-使用其他名称保存它,以避免覆盖模板文件
这样,我最终有了一个报告,一旦有人打开它,它就准备“触发”我的宏。宏将执行诸如创建数据透视图,自动选择数据透视表过滤器等操作。没什么好看的。
问题:
当我手动打开Excel文件时,宏不起作用,引发此错误:
在这行代码上
但是,当我等待文档停止加载时,然后手动执行宏,它可以按预期工作。
我认为原因可能与Workbook_Open
事件触发后无法“准备”读取数据有关。
我从未像这样遇到过,但在使用HTML对象时却遇到了类似的情况。不知道这是否行得通,但值得一试
Do Until Application.Ready = True
DoEvents: Loop
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句