问题:从 Office 2010 升级到 2013 后,Essbase Excel 加载项(“essexcln.xll”,Oracle 于 2013 年终止支持)导致焦点始终返回到具有活动连接的窗口,当有更多超过 1 个窗口打开。如果 Essbase 加载项在启动时加载,Excel 也会冻结。请注意,Smartview 已替换此加载项,但出于其他原因,我需要继续使用它。当 Essbase 导致这些错误时,我可以手动转到文件 > 选项 > 加载项 > 管理 Excel 加载项并手动检查/取消检查,但我宁愿使用快速键盘快捷键来执行此操作。
解决方法:创建自定义加载项以快速切换 Essbase 加载项installed
属性以加载和卸载它。也许加载项是矫枉过正 - 但我并没有真正使用 PERSONAL.XLSB,我希望此功能始终可用。
问题2:卸载Essbase插件后,“插件”菜单栏仍显示自定义命令:“关于Oracle Essbase电子表格插件”。“Essexcln.xll”是出了名的错误,即使手动取消选中该加载项,这个“关于 Oracle Essbase 电子表格加载项”也会持续存在。我的解决方案是使用ActiveMenuBar.Reset
- 只有在我卸载了加载项之后。如果我刚刚切换Installed
到True
.
有替代方案ActiveMenuBar.Reset
吗?这感觉像是一种 hack - 有点像使用ActiveCell
or ActiveSheet
- 但我不想手动检查/取消检查插件,无论如何这可能会或可能不会清除“关于 Essbase ...”。
笔记:是的,也许循环不是最有效的Add-ins
,但是它们太少了,我并不在乎。我宁愿避免使用ActiveMenuBar
.
Sub Toggle_Essbase_AddIn()
Dim x As AddIn
Dim installed As Boolean
For Each x In Application.AddIns
If x.Name = "essexcln.xll" Then
' Get initial installed status
installed = x.installed
' Toggle
x.installed = Not x.installed
' Reset menu bar if Essbase was initially installed
If installed Then
ActiveMenuBar.Reset
End If
Exit Sub
End If
Next x
End Sub