【发布时间】:2019-10-18 18:21:21
【问题描述】:
我熟悉自定义 Excel 2013 及以下版本的 Excel 功能区所需的 VBA 例程。
尝试在 Excel 365 上打开文件时,我收到一条错误消息:
这是我使用的代码(适用于 Excel 2010):
Sub CreateMenu()
' Delete the CommandBar if it exists already
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("My Tool").Delete
Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add
With cControl
.Caption = "My Tool"
.Style = msoButtonCaption
End With
End Sub
我应该如何修改代码以在 Excel 2010 和 Excel 365 版本上运行?
【问题讨论】:
-
就个人而言,我通过 UI 修改功能区并将其与
xlam附加组件一起分发 (Excel.OfficeUI)。不过,我确实遇到了硬编码用户名的问题,并使用batchsubstitute将我的名字换成了当前的%USERNAME%。我相信你会弄明白的,我没有这方面的经验来提供答案,只是一种替代方法。 -
@FreeSoftwareServers:谢谢 - 但我的 Excel 文件是从 csv/bas 文件导入的 - 我的环境中没有真正的 XSLM 文件。此外,我无法修改目标计算机环境(安装 excel 插件) - 因此我必须在 Excel 打开事件期间从代码中操作功能区
-
在 excel 打开事件上操作功能区是修改目标计算机不是吗?事实上,在我的测试中,它需要单击“启用内容”,因为分发
Excel.OfficeUI无需用户干预即可工作。功能区和加载项是完全分开的,我只是将两者结合使用,但它们本身并没有真正得到“安装”,只是放置在正确的启动目录中。