以编程方式保存Excel加载项

我有一个用户偶尔更新的工作表,用于制作一个加载项(.XLAM)。 加载项位于networking共享上,并且用户链接到它。 我正在寻找使用户能够轻松更新此加载项(确保它被标记为只读)

我已经在这里看到了Ken Puls的关于部署Excel加载项的文章,但他使用的.SaveCopyAs方法似乎不能接受文件types。

.SaveAs方法,但是当这个尝试了,我得到一个消息说,文件格式或扩展名是无效的,我已经尝试.XLAM和.XLA如下。

 DeployPath = "C:\Menu.xlam" .SaveAs Filename:=DeployPath, ReadOnlyRecommended:=True, FileFormat:=xlOpenXMLAddIn 

任何在这方面的帮助将不胜感激。

我认为你需要使用(Excel 2003及更早版本)

 ThisWorkbook.IsAddin = True ThisWorkbook.SaveAs "fredyy", xlAddIn 

对于Excel 2007+使用

 ThisWorkbook.SaveAs "fredyy", xlOpenXMLAddIn 

这是为我工作的解决scheme:

 Dim strRawName As String strRawName = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1)) ThisWorkbook.IsAddin = True ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & strRawName & ".xlam", FileFormat:=xlOpenXMLAddIn