前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA代码:不同的工作表显示不同的弹出菜单

VBA代码:不同的工作表显示不同的弹出菜单

作者头像
fanjy
发布2022-11-16 10:15:04
8070
发布2022-11-16 10:15:04
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA,快捷菜单

如果想要对每个工作表显示不同的菜单,或者仅在某些工作表中显示菜单,可以使用相应的代码来实现。

在VBE中,单击菜单“插入——模块”,在标准模块中,输入下面的代码:

Sub Custom_PopUpMenu_2()

' 添加带有3个按钮的弹出菜单.

With Application.CommandBars.Add(Name:=Mname, _

Position:=msoBarPopup, _

MenuBar:=False, _

Temporary:=True)

With .Controls.Add(Type:=msoControlButton)

.Caption = "按钮 1"

.FaceId = 71

.OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"

End With

With .Controls.Add(Type:=msoControlButton)

.Caption = "按钮 2"

.FaceId = 72

.OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"

End With

With .Controls.Add(Type:=msoControlButton)

.Caption = "按钮 3"

.FaceId = 73

.OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"

End With

End With

End Sub

Sub CreateDisplayPopUpMenu()

' 如果存在则删除该弹出菜单.

Call DeletePopUpMenu

' 基于活动工作表创建合适的菜单.

Select Case ActiveSheet.Name

Case "Sheet1": Call Custom_PopUpMenu_1

Case "Sheet2": Call Custom_PopUpMenu_2

Case Else: MsgBox "Sorry no Popup Menu"

End Select

' 显示弹出菜单.

On Error Resume Next

Application.CommandBars(Mname).ShowPopup

On Error GoTo 0

End Sub

接着,输入下面的代码:

Sub CreateDisplayPopUpMenu()

' 如果存在则删除该弹出菜单.

Call DeletePopUpMenu

' 基于活动工作表创建合适的菜单.

Select Case ActiveSheet.Name

Case "Sheet1": Call Custom_PopUpMenu_1

Case "Sheet2": Call Custom_PopUpMenu_2

Case Else: MsgBox "Sorry no Popup Menu"

End Select

' 显示弹出菜单.

On Error Resume Next

Application.CommandBars(Mname).ShowPopup

On Error GoTo 0

End Sub

此时,在工作表Sheet1和工作表Sheet2中,将显示不同的菜单,而在其他工作表中,会显示“Sorry no Popup Menu”消息。

注:本文整理自microsoft.com,供有兴趣的朋友参考。

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

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

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

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

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

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