首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VBA实战技巧19:根据用户在工作表中的选择来隐藏/显示功能区中的剪贴板组

VBA实战技巧19:根据用户在工作表中的选择来隐藏/显示功能区中的剪贴板组

作者头像
fanjy
发布2021-03-12 16:47:06
发布2021-03-12 16:47:06
5.8K00
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

excelperfect

有时候,我们可能想根据用户在工作表中的选择来决定隐藏或者显示功能区选项卡中的特定组,避免用户随意使用某些功能而破坏我们的工作表结构。

下面,我们通过一个示例来演示。

我们想让用户选择工作表列B中的任意单元格时,隐藏“开始”选项卡中的“剪贴板”组,而当用户选择其他单元格时,该组又重新显示,如下图1所示。

图1:当用户选择的单元格在列B中时,“剪贴板”组隐藏,处于其他单元格中时,“剪贴板”组显示

首先,我们新建一个工作簿并保存。

然后,使用自定义UI工具打开该工作簿,输入如下所示的XML代码:

代码语言:javascript
代码运行次数:0
运行
复制
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"onLoad="Initialize">
    <ribbon>
       <tabs>
           <tab idMso="TabHome">
              <group idMso="GroupClipboard"getVisible="HideClipboard"/>
           </tab>
       </tabs>
    </ribbon>
</customUI>

如下图2所示。

图2:在Custom UI Editor For Microsoft Office中编辑输入XML

重新打开工作簿,按Alt+F11键打开VBA编辑器,插入一个标准模块,输入下面的代码:

代码语言:javascript
代码运行次数:0
运行
复制
Public rxIRibbonUI As IRibbonUI
Public bln As Boolean
 
'Callback for customUI.onLoad
Sub Initialize(ribbon As IRibbonUI)
    Set rxIRibbonUI = ribbon
End Sub
 
'Callback for GroupClipboardgetVisible
Sub HideClipboard(control As IRibbonControl, ByRef returnedVal)
   returnedVal = bln
End Sub
 
Public Function InRange(rng1 As Range, rng2 As Range)
    Dim interSectRange As Range
    Set interSectRange = Application.Intersect(rng1, rng2)
    InRange =Not interSectRange Is Nothing
    Set interSectRange = Nothing
End Function

双击工程资源管理器中的ThisWorkbook模块,在该模块代码窗口中输入下面的代码:

代码语言:javascript
代码运行次数:0
运行
复制
Private Sub Workbook_Open()
    If InRange(Range(Selection.Address), Columns("B:B")) Then
        bln =False
    Else
        bln =True
    End If
End Sub
 
Private Sub Workbook_SheetSelectionChange(ByVal ShAs Object, ByVal Target As Range)
    If InRange(Range(Selection.Address), Columns("B:B")) Then
        bln =False
    Else
        bln =True
    End If
   rxIRibbonUI.InvalidateControlMso "GroupClipboard"
End Sub

保存并关闭工作簿,然后重新打开该工作簿,试试看!效果应该如上图1中所示。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档