Namig: drugi jeziki so prevedeni v Google. Lahko obiščete English različico te povezave.
Vpiši se
x
or
x
x
Registracija
x

or

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

doc desno klikni makri 5

Če v delovni zvezki obstaja več makrojev VBA, odprite okno VBA in nato izberite makro, ko boste morali zagnati kodo. V tem članku bi rad govoril o tem, kako zagnati makre v meniju z desnim klikom, da bi bilo vaše delo bolj učinkovito, saj je prikazan zaslon v levi.

Z desno miškino tipko zaženite več makrov s kodami VBA


Z desno miškino tipko zaženite več makrov s kodami VBA

Če želite zagnati makro kodo v delovnem zvezku v meniju z desnim klikom, vam lahko pomagajo naslednji koraki:

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

2. Nato dvokliknite ThisWorkbook na levi strani Projekt podokno 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 desno klikni makri 1

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

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 desno klikni makri 2

4. Po lepljenju kod, nato kliknite Orodja > ReferenceIn Reference-VBAProjekt Prikaže se pogovorno okno in preverite Microsoft Visual Basic za razširljivost aplikacij 5.3 možnost v Razpoložljive reference polje s seznamom, si oglejte sliko zaslona:

doc desno klikni makri 3

5. Nato kliknite OK da zaprete pogovorno okno, morate ta delovni zvezek shraniti kot Delovni zvezek Macro-Enabled Excel format, si oglejte posnetek zaslona:

doc desno klikni makri 4

6. Končno, znova zaženite delovni zvezek, če želite ujemati kodo in zdaj, ko z desno miškino tipko kliknete celico, a Zaženi makro možnost je vstavljena v meni z desnim klikom in vsi makri v vaši delovni zvezki so navedeni v podmeniju na naslednji sliki zaslona:

doc desno klikni makri 5

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


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.