Preskoči na glavno vsebino

Kako zagnati več makrov iz menija z desnim klikom v Excelu?

doc makri z desnim klikom 5

Če je v vašem delovnem zvezku več makrov vba, odprite okno VBA in nato izberite makro, ko morate zagnati kodo. V tem članku bi rad spregovoril o tem, kako zagnati makre iz menija z desnim klikom, da bi bilo vaše delo učinkovitejše, kot je prikazano na levi sliki zaslona.

Zaženite več makrov v meniju z desnim klikom s kodami VBA


Zaženite več makrov v meniju z desnim klikom s kodami VBA

Če želite zagnati kode makrov v delovnem zvezku iz menija z desnim klikom, vam bodo morda v pomoč naslednji koraki:

1. Odprtina Alt + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. Nato dvokliknite Ta delovni zvezek na levi Projekt in nato kopirajte in prilepite spodnjo kodo VBA v prazen modul.

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

doc makri z desnim klikom 1

3. Še vedno v Microsoft Visual Basic za aplikacije okno, kliknite Vstavi > Moduliin v ta modul prilepite naslednjo kodo.

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

doc makri z desnim klikom 2

4. Po lepljenju kod kliknite in kliknite Orodja > ReferenceIn Reference-VBAProject Prikaže se pogovorno okno in nato preverite Microsoft Visual Basic za razširljivost aplikacij 5.3 možnost v Razpoložljive reference seznam, glej posnetek zaslona:

doc makri z desnim klikom 3

5. Nato kliknite OK če želite zapreti pogovorno okno, shranite ta delovni zvezek kot Excelov delovni zvezek z omogočeno makro format, glej posnetek zaslona:

doc makri z desnim klikom 4

6. Končno znova zaženite delovni zvezek, da začne učinkovati kode, in zdaj, ko z desno miškino tipko kliknete celico, a Zaženite makro možnost se vstavi v meni z desnim klikom in vsi makri v vaši delovni zvezki so v podmeniju navedeni kot naslednji posnetek zaslona:

doc makri z desnim klikom 5

7. Nato lahko zaženete kodo, tako da jo kliknete.


Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations