我有一个自定义功能区,可以正常工作,但我只想启用它,并在某些工作簿中显示我的添加内容,因此我在加载时检查工作簿标题,并在条件为假时尝试使用Invalidate方法。不幸的是,自定义功能区选项卡仍未显示。
以下是我的子:
Public Sub loadMyRibbon(ribbon As IRibbonUI)
Set RibUI = ribbon
If Not workbookTitle = "My Workbook" Then
If Not RibUI Is Nothing
RibUI.Invalidate
MsgBox "Not Working"
End If
End If
End Sub
通过阅读方法文档,这对我来说似乎是正确的:Microsoft文档
我看到我的MsgBox消息显示在屏幕上,因此我知道代码到目前为止可以正确执行,但是RibUI.Invalidate不会隐藏我的标签。感谢任何指针!
我也尝试过:
RibUI.InvalidateControl "myTag"
但这也不起作用
Ribbon.Invalidate并不意味着功能区将不会显示。Invalidate函数只是告诉功能区使其默认/动态属性无效并重新初始化功能区控件。
我使用了一些外接程序,在这些外接程序中,如果用户无法通过身份验证,客户端希望隐藏功能区项。因此,在这种情况下,我在所有Control中都使用了“ GetVisible”属性,然后使用了这段代码
Sub GetVisible(control As IRibbonControl, ByRef Visible)
On Error Resume Next
Visible = shouldShowOrNot
End Sub
shouldShowOrNot是一个布尔变量,如果用户通过身份验证,则我在Ribbon加载中将其设置为true。见下图:
现在,上面的图像是功能区的表示,以防用户认证失败。也许有更好的方法可以做到,但是我发现它是迄今为止最好的方法。
希望这会有所帮助,Vikas B
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句