2017-09-18 33 views
0

我想创建一个宏,弹出一个工具栏包含按钮为特定的操作,但代码工作正常,我测试了每一行,但是当我运行它从单词PoPUP消息,并防止我跑这一点,我唐诺为什么 PS:我试着在谷歌和每一个劲儿地解决方案论坛
,我使用Word 2016的工作和Word 2007 这是我的代码宏被禁用的字保密

Sub AddNewMB() 
Dim myCommandBar As CommandBar, myCommandBarCtl As CommandBarControl 
Dim myCommandBarSubCtl As CommandBarControl 

On Error GoTo AddNewMB_Err 

Set myCommandBar = CommandBars.Add(Name:="Airbus", Position:=msoBarTop, 
menuBar:=True, Temporary:=False) 
myCommandBar.Visible = True 
myCommandBar.Protection = msoBarNoMove 

Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 
With myCommandBarCtl 
    .BeginGroup = True 
    .Caption = "UnGroup Shapes" 
    .Style = msoButtonCaption 
    .OnAction = "=UnGroupShapes_click()" 
End With 

Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 
With myCommandBarCtl 
    .BeginGroup = True 
    .Caption = "Group Shapes" 
    .Style = msoButtonCaption 
    .OnAction = "=GroupShapes_click()" 
End With 

Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 
With myCommandBarCtl 
    .BeginGroup = True 
    .Caption = "&Set Visibility Off" 
    .Style = msoButtonCaption 
    .OnAction = "=SampleMenuDisable()" 
End With 

Exit Sub 

AddNewMB_Err: 
Debug.Print Err.Number & vbCr & Err.Description 
Exit Sub 
End Sub 
Function GroupShapes_click() 
Dim MyMenu As CommandBar 
Dim myCommandBarClickMe As CommandBarControl 
Dim mydocument As Document 
Set mydocument = ActiveDocument 
On Error Resume Next 

ActiveDocument.Unprotect 'enregistré manuellement 
Dim S As Shape, t As Shape 

On Error GoTo GroupShapes_click_Err 

Set MyMenu = CommandBars("Airbus") 
Set myCommandBarClickMe = MyMenu.Controls(2) 

With CommandBars.ActionControl 

End With 


GroupShapes_click_Err: 
Debug.Print Err.Number & vbCr & Err.Description 

End Function 


    Function SampleMenuDisable() 
    Application.CommandBars("Sample Menu Bar").Visible = False 
    Application.CommandBars("Menu Bar").Visible = True 
    End Function 

我要的是防止这种情况发生在我使用的每个代码上,并为我使用的每个字安装此工具栏

这是我的错误error

我需要一些帮助,我被困在这里 感谢的提前

+0

'Set myCommandBar = ...'行在其末尾缺少下划线。除此之外,您的代码在我的PC上运行。有趣的是,命令栏在某处隐藏,但这不是代码的错误。也许你可以告诉我为什么这样。错误消息似乎指向您的安全设置的问题,而不是您的代码。 – Variatus

+0

我不知道为什么,安全设置像什么?你能分享我一些想法如何解决这个问题吗?我真的失去了 –

+0

你的错误信息有一个帮助按钮。跟着它。转至文件>选项>信任中心>信任中心设置,查看“宏设置”,还可以查看该对话框中的所有其他选项。 – Variatus

回答

0
  1. 独立宏从让你烦恼的问题。您尚未确定您发布的代码与您收到的错误消息有关。采取一个新的文件,并将下面的代码添加到它。

    Private Sub Test() 
        MsgBox "This code is running." 
    End Sub 
    

另存为启用宏的文档。尝试运行代码。如果它运行,关闭文档,退出Word。重新启动Word,加载文档,尝试再次运行代码。 如果代码在这些场景中的一个或两个场景中运行,则故障必须与包含您在上面发布的代码或代码本身的文档一起。在此发布上述测试的结果,我们可以在那里查找错误。

  1. 转到文件 - >选项 - >信任中心 - >信任中心设置。 选择左侧的“宏设置”。你会看到一些单选按钮。选择一个说“启用所有宏(不推荐;有潜在危险的代码可以运行)”。从你的描述来看,这是你的问题的责任。如果此设置的审查未能解决您的问题,请发布此设置对话框的屏幕截图。
+0

我测试了第一个解决方案,它工作正常,所以我决定将我的代码的位置更改为另一个字,但它再次显示错误,所以我认为有些东西可以防止添加新的工具或修改原来的单词,所以我去了第二个解决方案来测试,我修改了所有的我有一个解决方案,但我不知道这是否会起作用,如果您可以创建或修改一个类似于它的宏,以便我可以测试它,以确保更好地定位问题我的原始代码仍然在那里 –

+0

在您怀疑的所有程序中的所有代码行之前放置撇号。尝试运行代码,首先是空过程,然后在继续尝试运行代码的同时删除撇号一行,直到找到导致错误的一行。正如我前面所说,代码在我的PC上运行良好,但未能创建可见的控件。该控件已创建。我可以阅读它的属性,但我看不到它。我认为这是一个不同的错误,可能是位置或大小,但不会拒绝你的代码。 – Variatus

+0

好的我很快会回来重播你的评论 –