我有一个应用程序(在IBM Notes中运行,使用Lotusscript等),通过OLE自动化创建一个新的Excel对象。在我的应用程序中,我创建一个新的工作簿并将其保存到一个临时文件夹(我将其保存为没有宏的Excel工作表 - >类型52),以便resuting文件是......那样:
tmp_abc1234.xlsx
然后我以编程方式在Excel中打开文件。我有一个Excel Addin(文件名是" Teamoffice.xlam"加载了一些宏驻留我将在自定义保存操作栏按钮中触发。在这个保存方法中我也调用保存功能:
Call ActiveWorkbook.Save
Call ThisWorkbook.Save
出于某种原因,Excel创建了一个名为" Teamoffice.xlsm"的文件。在"我的文件"夹。文件本身无法在Excel中打开("错误的文件格式错误") - 当然,它是一个Addin!
如果我的应用程序只打开了一个Excel文档,这很有效。如果我打开第二个(或更多)我遇到了麻烦:每次我保存那些二次打开(或新创建的)文档时,Excel会询问我是否要覆盖#34; Teamoffice.xlsm"文件。
我将vBA代码添加到ma宏,检测此文件是否存在并尝试删除它。当然没有运气,因为Excel的第一个实例已经锁定了该文件。在转换Excel问题对话框时覆盖文件有效,但我不希望出现该问题。
Excel在单独使用OLE时不会表现得像那样。
此行为导致的几个问题:
Office版本是2010年 - 它让我疯了......所以提前谢谢! p.s。:我不是VBA职业选手,所以请尽量详细说明: - )
答案 0 :(得分:1)
我注意到了
ThisWorkbook.Save
是原因。如果我省略它,则不会创建任何文件。奇怪的是,这将Addin文件保存为xlsm文件。