以编程方式保存Excel加载项

时间:2010-12-22 01:46:44

标签: excel vba excel-vba add-in excel-addins

我的用户偶尔更新了一个用于制作外接程序(.XLAM)的工作表。加载项位于网络共享上,用户链接到该共享。我希望用户能够轻松更新此加载项(确保它被标记为只读)

我在Ken Puls here上看过有关部署Excel加载项的文章,但是他使用的.SaveCopyAs方法似乎无法接受文件类型。

.SaveAs方法确实如此,但是在尝试此操作时,我收到一条消息,说文件格式或扩展名无效,我已尝试使用.XLAM和.XLA,如下所示。

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

非常感谢这方面的任何帮助。

2 个答案:

答案 0 :(得分:5)

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

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

对于Excel 2007+,请使用

ThisWorkbook.SaveAs "fredyy", xlOpenXMLAddIn

答案 1 :(得分:3)

这是对我有用的解决方案:

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