Связать макрос с кнопкой на панели команд в надстройке - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь связать макрос с кнопкой командной строки в надстройке. Я поместил его в сегмент onaction командной кнопки.

Я попробовал несколько способов записи имени макроса, даже установив ссылку.

Невозможно запустить 'serialbutton.xlam! Getserial'.

Макрос может быть недоступен в этой книге или все макросы могут быть отключены

Sub Auto_Open() 'Or Private Sub Workboo_Open() in ThisWorkbook
Dim CmdBar As CommandBar
Dim CmdBarMenu As CommandBarControl
Dim CmdBarMenuItem As CommandBarControl

Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
Set CmdBarMenu = CmdBar.Controls("Tools")   ' Index 6

On Error Resume Next
Application.DisplayAlerts = False
CmdBarMenu.Controls("Get Serial No").Delete 'Just in case a button with same name already exists
Application.DisplayAlerts = True
On Error GoTo 0

Set CmdBarMenuItem = CmdBarMenu.Controls.Add(Type:=msoControlButton)
With CmdBarMenuItem
     .Caption = "Get Serial No"
     .OnAction = "'getserial'"  'Name of the sub it will call when button is pushed
     .FaceId = 215 'assigns an icon to the dropdown
End With

End Sub


Sub getserial()
    'macro to open file on central location and get serial number
    Dim serialNo As String
    Dim actual As String
    Dim serialfile As String
    'Dim xlApp As Object
    Dim wb As Object

    'Set xlApp = CreateObject("Excel.Application")
    Set wb = Workbooks.Open("somefile")
    Application.Run "'" & ActiveWorkbook.Name & "'!GeneratSerialNumber"
    serialNo = Cells(1, 1).Value
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    Cells(1, 1).Value = serialNo
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...