所以我做了一些研究,但是我无法获得我想要的功能。
我正在为网络上的很多人部署工作簿。我在所有工作簿引用的网络驱动器上都有一个加载项。它在运行宏时运行良好,完全没问题。我的问题是当人们打开其中一个工作簿时更新宏。人们有时会把东西打开几天,我知道,因为我有时会做同样的事情。
我找到了这个链接,下面的代码但是我无法让它工作。
https://www.excelguru.ca/content.php?152-Deploying-Add-ins-in-a-Network-Environment
宏将其另存为.xlsm或启用宏的工作簿。它不会将其保存为.xla
Sub DeployAddIn()
'Author : Ken Puls (www.excelguru.ca)
'Macro Purpose: To deploy finished/updated add-in to a network
' location as a read only file
Dim strAddinDevelopmentPath As String
Dim strAddinPublicPath As String
'Set development and public paths
strAddinDevelopmentPath = ThisWorkbook.Path & Application.PathSeparator
strAddinPublicPath = "F:\Addins" & Application.PathSeparator
'Turn off alert regarding overwriting existing files
Application.DisplayAlerts = False
'Save the add-in
With ThisWorkbook
'Save to ensure work is okay in case of a crash
.Save
'Save read only copy to the network (remove read only property
'save the file and reapply the read only status)
On Error Resume Next
SetAttr strAddinPublicPath & .Name, vbNormal
On Error Goto 0
.SaveCopyAs Filename:=strAddinPublicPath & .Name
SetAttr strAddinPublicPath & .Name, vbReadOnly
End With
'Resume alerts
Application.DisplayAlerts = True
End Sub
我已经尝试过了
.SaveAs FileFormat:=xlAddIn
或者
.`SaveAs FileFormat:=18`
Niether的那些工作。 SaveCopyAs没有fileformat选项。
任何可能有效的建议或其他方法?
答案 0 :(得分:0)
在您更新的本地计算机上保留XLAM的副本,然后在准备部署它时,将XLAM复制到服务器。其他人都运行服务器上的副本(你不希望他们将它复制到本地机器,顺便说一句) - 关键是当你把它复制到服务器时,你必须将它设置为只读文件属性。每次复制时都必须这样做。然后你可以随时覆盖它。
如果您有任何问题,请发表评论 - 我每天都会这样做。