我有一个大的Excel宏,我变成了一个加载项(.xlam
)文件,因为我将在共享网络驱动器上保留此加载项的公共版本,我遵循了以下建议:来自here的Ken Puls,通过使用以下代码来部署我的加载项的未来版本(用于更新,修复等)。:
Sub DeployAddIn()
'Author :
'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
现在,我了解代码中发生了什么,我只是不确定应该放置Sub
的位置。它应该放在.xlam
的ThisWorkbook Module,Module1(包含我的宏)还是其他地方?我很困惑,因为安装了加载项的用户不能访问/运行此Sub
吗?我有加载项本身被锁定,不知道这是否有帮助,我有一个按钮放在加载项工具栏区域,用户可以单击以运行我的宏。
答案 0 :(得分:0)
与网站所有者交谈后,现在可以清楚地了解如何实现上述代码。此Sub放置在加载项内的模块中。如果您不希望最终用户具有访问/能够运行此Sub的权限,请将其设置为 Private Sub(这会清除我的第一个问题)。要运行Sub,您必须在vbe中并在Sub中单击光标,然后单击Run按钮。