我的用户偶尔更新了一个用于制作外接程序(.XLAM)的工作表。加载项位于网络共享上,用户链接到该共享。我希望用户能够轻松更新此加载项(确保它被标记为只读)
我在Ken Puls here上看过有关部署Excel加载项的文章,但是他使用的.SaveCopyAs
方法似乎无法接受文件类型。
.SaveAs
方法确实如此,但是在尝试此操作时,我收到一条消息,说文件格式或扩展名无效,我已尝试使用.XLAM和.XLA,如下所示。
DeployPath = "C:\Menu.xlam"
.SaveAs Filename:=DeployPath, ReadOnlyRecommended:=True, FileFormat:=xlOpenXMLAddIn
非常感谢这方面的任何帮助。
答案 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