2010-12-22 55 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