VBA 覆盖加载项工作簿



所以我做了一些研究,但我无法获得我正在寻找的功能。

我正在将工作簿部署到网络上的很多人。 我在网络驱动器上有一个所有工作簿都引用的加载项。 运行宏时效果很好,完全没有问题。 我的问题是当人们打开其中一个工作簿时更新宏。 我知道,人们有时会把事情打开几天,因为我有时会做同样的事情。

我找到了这个链接,下面的代码,但我无法让它工作。

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`

那些作品的尼特。 SaveCopyAs 没有文件格式选项。

任何建议或任何其他可能有效的方法?

在更新的本地计算机上保留 XLAM 的副本,然后在准备好部署它时,将 XLAM 复制到服务器。其他人都运行服务器上的副本(顺便说一句,您不希望他们将其复制到本地计算机( - 关键是当您将其复制到服务器时,您必须在文件属性中将其设置为只读。每次复制它时都必须这样做。然后,您可以随时覆盖它。

如果您有任何问题,请发表评论 - 我每天都这样做是为了工作。

最新更新