作者:绿色风
分类:
时间:2022-08-17
浏览:129
楼主 amulee |
Q:工作簿Open事件为何不能访问RibbonUI? 在这个例子中展示了如何禁用Ribbon中的剪切按钮。但是当在WorkBook_Open事件中该程序却出错。该如何解决? A:当通过XML自定义了Ribbon,需要以回调函数onLoad来对RibbonUI对象进行变量设定。该回调函数的运行优先级是低于工作簿Open事件的,即当打开工作簿时,程序先执行Open事件,然后再运行onLoad回调函数。 当执行Open事件时,RibbonUI对象并未进行任何变量的赋值,此时若运行RibbonUI对象的Invalidate方法,是没有任何对象绑定的,因而会发生错误。 若要在打开工作簿时实现禁用Ribbon中剪切按钮的禁用,需要将该进行代码写入onLoad函数对RibbonUI对象进行绑定之后。于是可以将该过程写入onLoad函数中。 参考代码如下:
- '定义RibbonUI
- Public rxIRibbonUI As IRibbonUI
- '定义全局变量Bln,来判断是否禁用Cut
- Public Bln As Boolean
- 'RibbonUI加载时运行
- Sub rxIRibbonUI_onLoad(ribbon As IRibbonUI)
- Set rxIRibbonUI = ribbon
- Bln = True
- '此处运行禁用剪切的过程
- Cut_Enanble
- End Sub
- '剪切按钮回调,控制其是否禁用
- Sub GetEnable(control As IRibbonControl, ByRef returnedVal)
- returnedVal = Bln
- End Sub
- '改变全局变量,并刷新RibbonUI
- Sub Cut_Enanble()
- Bln = Not Bln
- rxIRibbonUI.Invalidate
- End Sub
由本例可知,当需要在打开工作簿时对RibbonUI进行操作,则可以将程序写入RibbonUI的回调函数onLoad之中。
附件下载: 工作簿打开时禁用RibbonUI的剪切.rar |
2楼 水星钓鱼 |
这个级别稍高了。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一