【问题标题】:Excel VBA remove right button click 'Paste Options' menu group when editing within a cellExcel VBA在单元格内编辑时删除右键单击“粘贴选项”菜单组
【发布时间】:2013-07-30 07:04:18
【问题描述】:

我需要使用 VBA 从 Excel 2010 中的右键单击菜单中删除“粘贴选项”。

我能够删除我不需要但无法摆脱“粘贴选项”的所有不必要的“正常”控制项(例如“Cu&t”、“&Copy”、“Paste &Special...”等) ' 及其图标子项。我还从 Excel 文件->选项->高级->剪切复制和粘贴中删除了“粘贴选项”,但这对右键单击“粘贴选项”没有影响。我已经广泛搜索了一个解决方案,但在网络上的任何地方都找不到此参考。

我还检查了 VBA“Locals”窗口中的 CommandBar 对象并查看了所有属性,但看不到“粘贴选项”所在的位置。

提前谢谢你

【问题讨论】:

  • 是否只适用于一个工作簿?
  • 是的,只有一个工作簿和其中唯一可见的工作表。

标签: vba excel commandbar


【解决方案1】:

使用 customui 编辑器,您可以将其添加到 customui14 部分

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <commands>
        <command idMso="Paste" enabled="false"/>
        <command idMso="PasteGallery" enabled="false"/>
        <command idMso="PasteGalleryMini" enabled="false"/>
        <command idMso="PasteMenu" enabled="false"/>
        <command idMso="PasteLink" enabled="false"/>
        <command idMso="PasteAsHyperlink" enabled="false"/>
        <command idMso="PasteSpecialDialog" enabled="false"/>
        <command idMso="PasteFormatting" enabled="false"/>
        <command idMso="PasteFormulas" enabled="false"/>
        <command idMso="PasteValues" enabled="false"/>
        <command idMso="PasteFormulasAndNumberFormatting" enabled="false"/>
        <command idMso="PasteTranspose" enabled="false"/>
        <command idMso="PastePictureLink" enabled="false"/>
    </commands>
</customUI>

如果您想隐藏控件,则必须为要操作的每个菜单执行此操作。例如单元格菜单

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <contextMenus>
        <contextMenu idMso="ContextMenuCell">
            <gallery idMso="PasteGalleryMini" visible="false"/>
        </contextMenu>
    </contextMenus>
</customUI>

【讨论】:

【解决方案2】:

使用 for 循环,这里是我的上下文菜单的 CommabdBarControl elements 的 ID 和标题:

身份证标题 21 切割(&T) 19(&复制) 22&粘贴 21437 粘贴&特殊... 3624&粘贴表 25536 智能查找 32713 数据类型​​(&type) 33409 翻译 295 插入单元​​(&E)... 27690 插入单元​​(&E)... 292(&D)删除... 3125 清除内容(&N) 24508&快速分析 31623 迷你图(&A) 31402 过滤器(&E) 31435 分类(&ort) 2031 插入评论&评论 1592 删除评论(&C) 1593 显示/隐藏评论(&O) 855 格式化单元格​​(&F)... 1966 从下拉列表中选择... 1614(&显示音域) 13380 定义名称&名称... 1576​​​​​​​​​​​​... 1577 编辑超链接(&H)... 1015(&O) 打开超链接(&O) 3626 删除超链接​​(&E) 11299 展开(&X) 详细 31595 附加动作(&A) 178全屏​​​​ 22577 其他操作(&A)

所以看起来如果你去掉“粘贴”和“特殊粘贴”,那么所有的粘贴选项都会消失。不完全确定“粘贴表”指的是什么。

对于 Application.CommandBars("Cell").Controls 中的每个 menuItem 如果 menuItem.ID = 22 或 menuItem.ID = 21437 那么 menuItem.Delete 下一个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2018-12-17
    相关资源
    最近更新 更多