我正在Excel 2013中编写(VBA).xltm文件。此文件的用户将创建它的实例,并且应该能够将此实例的副本保存在我自己预定的存储库中。
为此,我使用
RepoPath = WORKDIR & "\SETUP_REPOSITORY\" & ProjectName
ActiveWorkbook.SaveAs RepoPath & "\" & NewFileName
其中WORKDIR是包含模板的目录。此文件夹位于共享驱动器上,我通过子例程获取其值:
Sub SetDefaults()
WORKDIR = ActiveWorkbook.Path
End Sub
在ThisWorkbook对象的Workbook_Open()子例程中打开工作簿时调用此方法。
Private Sub Workbook_Open()
Module1.SetDefaults
End Sub
现在,当我尝试从模板中保存文件的副本时,这很好用,但是当我创建模板的新实例(“template1”)时,WORKDIR变量未正确初始化,而且我不要再指向正确的文件夹了。
所以我想知道是否有其他方法可以将路径传递给excel模板到它的实例?
我不能简单地使用绝对路径,因为它在共享驱动器上,而且我现在很想丢失想法(虽然我很高兴地承认我对VBA很新)。
非常欢迎任何帮助和建议!
提前致谢。
答案 0 :(得分:0)
不幸的是,从模板总是派生的副本有一个空字符串作为其路径属性,因为它是一个未保存的文件副本。解决此问题的一种方法是停止使用模板文件类型,但使用" normal"您设置为只读的Excel文件。然后你的文件打开代码可以以某种方式检测这是否是"原始"正在打开文件,如果是,请阅读路径并执行save-as。