Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 删除命令栏>;1发生_Excel_Vba_Excel Addins - Fatal编程技术网

Excel 删除命令栏>;1发生

Excel 删除命令栏>;1发生,excel,vba,excel-addins,Excel,Vba,Excel Addins,我有一个第三方加载项。我的问题是,它计算最后加载的命令栏,如果没有,它将重新加载 我不想编辑他们的代码与更新等,它将需要改变每一次 是否有一种方法可以删除除一个命令栏之外的所有命令栏或更改加载顺序以避免此问题 Public Sub ABCInitializeAddin() Dim menuEntries As Integer Dim lastIndex As Integer ' Get number of menu entries menuEntries = Application.Comm

我有一个第三方加载项。我的问题是,它计算最后加载的命令栏,如果没有,它将重新加载

我不想编辑他们的代码与更新等,它将需要改变每一次

是否有一种方法可以删除除一个命令栏之外的所有命令栏或更改加载顺序以避免此问题

Public Sub ABCInitializeAddin()

Dim menuEntries As Integer
Dim lastIndex As Integer

' Get number of menu entries
menuEntries = Application.CommandBars(WorksheetMenuBar).Controls.Count

' Get index of last entry
lastIndex = Application.CommandBars(WorksheetMenuBar).Controls(menuEntries).Index

If Not Application.CommandBars(WorksheetMenuBar).Controls(lastIndex - 1).Caption = ABCMenuEntry Then

    ' Add main menu entry
    Dim ABCMainMenu As CommandBarControl
    Set ABCMainMenu = CommandBars(WorksheetMenuBar).Controls.Add(Type:=msoControlPopup, Before:=lastIndex)
    ABCMainMenu.Caption = ABCMenuEntry

End Sub

Sub STDeleteXavex()

    Dim menuEntries As Integer
    Dim lastIndex As Integer
    Dim i As Long
    Dim p As Long
    Dim count As Long

    count = -1

    ' Get number of menu entries
    menuEntries = Application.CommandBars("Worksheet Menu Bar").Controls.count

    For i = 1 To menuEntries:
        If Application.CommandBars("Worksheet Menu Bar").Controls(i).Caption = "&ABC Online" Then count = count + 1
    Next i

    For p = 1 To count:
        Application.CommandBars("Worksheet Menu Bar").Controls("ABC Online").Delete
    Next p

End Sub