2010-12-22 63 views
4

我有一个工作表偶尔会被用来制作加载项(.XLAM)的用户更新。加载项位于网络共享上,并且用户链接到它。我期望让用户能够轻松更新此加载项(确保它被标记为只读)以编程方式保存Excel加载项

我已经看到关于部署Excel加载项的文章Ken Puls here,但他使用的.SaveCopyAs方法似乎并不能够接受文件类型。

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

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

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

+1

我发现有时我不会在使用FileFormat的数值时遇到问题。尝试使用`FileFormat:= 55`而不是`FileFormat:= xlOpenXMLAddIn` – PermaNoob 2013-12-27 16:33:56

+0

不知道你想达到什么...你试图保存当前打开的工作簿(不是插件)作为插件,或者你想保存插件作为插件?我想你在谈论模板而不是插件。 – 2013-12-29 21:17:48

回答

3

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

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

对于Excel 2007及更高版本使用

ThisWorkbook.SaveAs "fredyy", xlOpenXMLAddIn 
2

这是为我工作的解决方案:

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