2016-08-01 9 views
1

Я пытаюсь создать надстройку excel, которая позволила бы мне добавить префикс для всех записей в столбце.Надстройка Excel Не работает должным образом

Я думаю, что я понял какой-то код для этого, но, к сожалению, я продолжаю получать сообщение об ошибке: «Макрос может быть недоступен в этой книге или все макросы могут быть отключены. Я пробовал все рекомендуемые отключения ..! параметры безопасности

Я надеюсь, чтобы иметь возможность просто выбрать текст, используйте надстройку, и имеет префикс, добавляемый к каждой колонке Приветствие и спасибо за глядя в это

Вот код:

Private Sub Workbook_AddinInstall() 



On Error Resume Next 'Just in case 

'Delete any existing menu item that may have been left. 

Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete 

'Add the new menu item and Set a CommandBarButton Variable to it 

Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add 

'Work with the Variable 

    With cControl 

     .Caption = "Super Code" 

     .Style = msoButtonCaption 

     .OnAction = "MyGreatMacro" 

     'Macro stored in a Standard Module 

    End With 



On Error GoTo 0 


End Sub 
Private Sub Workbook_AddinUninstall() 



On Error Resume Next 'In case it has already gone. 

Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete 

On Error GoTo 0 

End Sub 

Private Sub AddTextOnLeft() 
'Updateby20131128 
Dim Rng As Range 
Dim WorkRng As Range 
Dim addStr As String 
On Error Resume Next 
xTitleId = "KutoolsforExcel" 
Set WorkRng = Application.Selection 
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) 
addStr = Application.InputBox("Add text", xTitleId, "", Type:=2) 
For Each Rng In WorkRng 
Rng.Value = addStr & Rng.Value 
Next 
End Sub 

ответ

0

для OnActi на вас назначили 'MyGreatMacro' вместо 'AddTextOnLeft'

должно быть

.OnAction = "AddTextOnLeft" 

и не

.OnAction = "MyGreatMacro" 
+0

Спасибо за комментирование! изменил этот раздел, но, к сожалению, я все еще получаю ту же ошибку. –

+0

Это потому, что вы будете иметь свой код в частном модуле [например: ThisWorkbook или Sheet1 (Sheet1)]. Поэтому он не может найти подпрограмму AddTextOnLeft. Вставьте тот же код в открытый модуль, создав новый модуль. Щелкните правой кнопкой мыши на своем проекте, выберите «Вставить-> Модуль» и вставьте его там, и он будет работать. –

+0

Я попытался открыть новую таблицу Excel, перейдя в режим разработчика и добавив новый код в новый модуль. Затем я сохранил файл excel как .xlam. Я добавил рекламный блок под опциями -> Надстройки -> Управление, но теперь надстройка вообще не отображается на вкладке надстроек. Любая помощь будет очень признательна, спасибо! –