Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

Как запустить несколько макросов из контекстного меню в Excel?

Нажмите правой кнопкой мыши макросы 5

Если в вашей книге есть несколько макросов vba, вы должны открыть окно VBA, а затем выбрать макрос, когда вам нужно запустить код. В этой статье я хотел бы поговорить о том, как запускать макросы из контекстного меню, чтобы сделать вашу работу более эффективной, как показано на рисунке слева.

Запуск нескольких макросов из контекстного меню с кодами VBA


Запуск нескольких макросов из контекстного меню с кодами VBA

Чтобы запустить макрокоды в рабочей книге из меню правой кнопки мыши, следующие шаги могут помочь вам выполнить следующие действия:

1, Отверстие вниз Alt + F11 , чтобы открыть Microsoft Visual Basic для приложений окна.

2, Затем дважды щелкните ThisWorkbook слева проект , а затем скопируйте и вставьте следующий код VBA в пустой модуль.

Private Sub Workbook_Open()
Run "LoadMacro"
End Sub
Private Sub Workbook_Activate()
Run "LoadMacro"
End Sub
Private Sub Workbook_Deactivate()
Run "ClearMacro"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Run "ClearMacro"
ThisWorkbook.Save
End Sub

Нажмите правой кнопкой мыши макросы 1

3, Еще в Microsoft Visual Basic для приложений окно, нажмите Вставить > модуль, и вставьте следующий код в этот модуль.

Private Sub LoadMacro()
Dim xArrMenu As Variant
Dim xStrLine, xSreBtnName As String
Dim xObjCBCF, xObjCntrAll As CommandBarControl
Dim xObjCBCs As CommandBars
Dim xObjCBBtn As CommandBarButton
Dim xIntLine, xFNum As Integer
Dim xObjComponent As Object
Run "ClearMacro"
Set xObjCBCF = Application.CommandBars("Cell").Controls.Add(msoControlPopup, before:=1)
xObjCBCF.Caption = " Run Macro "
xObjCBCF.BeginGroup = False
For Each xObjComponent In ActiveWorkbook.VBProject.VBComponents
    If xObjComponent.Type = 1 Then
        For xIntLine = 1 To xObjComponent.CodeModule.CountOfLines
        xStrLine = xObjComponent.CodeModule.Lines(xIntLine, 1)
        xStrLine = Trim(xStrLine)
            If (InStr(xStrLine, "()") > 0) And (Left(xStrLine, 11) = "Private Sub" Or Left(xStrLine, 3) = "Sub") Then
            xSreBtnName = ""
            If "Private Sub" = Left(xStrLine, 11) Then
                xSreBtnName = Trim(Mid(xStrLine, 12, InStr(xStrLine, "()") - 12))
            ElseIf "Sub" = Left(xStrLine, 3) Then
               xSreBtnName = Trim(Mid(xStrLine, 4, InStr(xStrLine, "()") - 4))
            End If
            If xSreBtnName <> "" And xSreBtnName <> "RightClickReset" And xSreBtnName <> "LoadMacro" And xSreBtnName <> "ActionMacro" Then
                Set xObjCBBtn = xObjCBCF.Controls.Add
                With xObjCBBtn
                    .FaceId = 186
                    .Style = msoButtonIconAndCaption
                    .Caption = xSreBtnName
                    .OnAction = "ActionMacro"
                End With
            End If
            End If
        Next xIntLine
    End If
Next xObjComponent
End Sub
Private Sub ClearMacro()
On Error Resume Next
CommandBars("Cell").Controls(" Run Macro ").Delete
Err.Clear
CommandBars("Cell").Reset
End Sub
Private Sub ActionMacro()
On Error GoTo Err1
With Application
Run .CommandBars("Cell").Controls(1).Controls(.Caller(1)).Caption
End With
Exit Sub
Err1:
    MsgBox "Invalid"
End Sub

Нажмите правой кнопкой мыши макросы 2

4, После вставки кодов, затем нажмите Инструменты > делоИ Ссылки-VBAProject появится диалоговое окно, а затем проверьте Microsoft Visual Basic для расширяемости приложений 5.3 вариант в Доступные ссылки список, см. снимок экрана:

Нажмите правой кнопкой мыши макросы 3

5, Затем нажмите OK чтобы выйти из диалога, теперь вы должны сохранить эту книгу как Excel Macro-Enabled Workbook формат, см. снимок экрана:

Нажмите правой кнопкой мыши макросы 4

6, Наконец, перезагрузите книгу, чтобы применить кодовый эффект, и теперь, когда вы щелкните правой кнопкой мыши на ячейке, Запустить макрос опция вставлена ​​в меню правой кнопки мыши, а все макросы в вашей книге перечислены в подменю в следующем скриншоте:

Нажмите правой кнопкой мыши макросы 5

7, Затем вы можете запустить код, просто щелкнув его.


Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.