Я создал xla (надстройку Excel), в которой есть функция для защиты документа (чтобы пользователь мог защитить документ, не зная пароля).Этот xla добавляется в каждый файл Excel, который нуждается в этой функции.
когда xla установлена или добавлена в Excel, кнопка защиты будет добавлена в последнее меню.но когда я нажимаю кнопку, возникает ошибка, показывающая, что
"Невозможно запустить надстройку макроса Pivot 0.2 '! protectSheet'".Макрос может быть недоступен в этой книге, или все макросы могут быть отключены. "
Код, на который нажал обработчик событий, - protectSheet, см. Источник ниже:
Может ли кто-нибудь указать, почему возникает эта проблема?
на ThisWorkbook
'main function'
Public Sub protectSheet()
ActiveWorkbook.ActiveSheet.protect Password:="password", AllowUsingPivotTables:=True
End Sub
Public Sub ShowToolbar()
' Assumes toolbar not already loaded '
Application.CommandBars.Add Module1.TOOLBARNAME
AddButton "Proteksi Sheet", "Memproteksi Pivot", 3817, "protectSheet"
' call AddButton more times for more buttons '
With Application.CommandBars(Module1.TOOLBARNAME)
.Visible = True
.Position = msoBarTop
End With
End Sub
Public Sub AddButton(caption As String, tooltip As String, faceId As Long, methodName As String)
Dim Btn As CommandBarButton
Set Btn = Application.CommandBars(Module1.TOOLBARNAME).Controls.Add
With Btn
.Style = msoButtonIcon
.faceId = faceId ' choose from a world of possible images in Excel: see http://www.ozgrid.com/forum/showthread.php?t=39992 '
.OnAction = methodName
.TooltipText = tooltip
End With
End Sub
Public Sub DeleteCommandBar()
Application.CommandBars(TOOLBARNAME).Delete
End Sub
'called when add-in installed
Private Sub Workbook_AddinInstall()
Call ShowToolbar
End Sub
'called when add-in uninstalled
Private Sub Workbook_AddinUninstall()
Call DeleteCommandBar
End Sub
На module1
Public Const TOOLBARNAME = "PivotTools"